{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "fb722781-c5eb-489d-a1eb-37df19340c68",
   "metadata": {},
   "source": [
    "# Pytorch model training on data in DeltaLake\n",
    "\n",
    "In this tutorial, we showcase how to perform ML model training on data in a DeltaLake table containing URLs pointing out to images.\n",
    "\n",
    "To run this tutorial you will require AWS credentials to be correctly provisioned on your machine as all data is hosted in a requestor-pays bucket in AWS S3.\n",
    "\n",
    "Let's get started!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "12b58e9d",
   "metadata": {
    "tags": [
     "parameters"
    ]
   },
   "outputs": [],
   "source": [
    "CI = False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d61c6cc0",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Skip this notebook execution in CI because it hits non-public buckets\n",
    "if CI:\n",
    "    import sys\n",
    "\n",
    "    sys.exit()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "51109558-d43e-4591-bd93-8cb707fbc37e",
   "metadata": {},
   "source": [
    "## Provisioning Cloud Credentials\n",
    "\n",
    "First, let's provision credentials to Daft! We can do so using the ``boto3`` library, and creating a Daft {class}`IOConfig <daft.io.IOConfig>` object like so:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "c30e3ddc-5c0f-44b1-ba98-3de4412d31aa",
   "metadata": {},
   "outputs": [],
   "source": [
    "import boto3\n",
    "\n",
    "import daft\n",
    "\n",
    "session = boto3.session.Session()\n",
    "creds = session.get_credentials()\n",
    "io_config = daft.io.IOConfig(\n",
    "    s3=daft.io.S3Config(\n",
    "        access_key=creds.secret_key,\n",
    "        key_id=creds.access_key,\n",
    "        session_token=creds.token,\n",
    "        region_name=\"us-west-2\",\n",
    "    )\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "94123b7f-e325-4af8-a355-06966f96d031",
   "metadata": {},
   "source": [
    "## Configuring Ray\n",
    "\n",
    "Now we configure Daft to run on the Ray backend.\n",
    "\n",
    "For the purposes of this tutorial, we define a ``USE_REMOTE_CLUSTER`` variable which will either have the tutorial run locally in the notebook (on a smaller subset of data), or on a remote Ray cluster (on a full subset of the data)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "b8047b98-55bd-4db0-81ea-fe2bebd3abed",
   "metadata": {},
   "outputs": [],
   "source": [
    "USE_REMOTE_CLUSTER = False\n",
    "RAY_ADDRESS = \"ray://localhost:10001\" if USE_REMOTE_CLUSTER else None"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "109e1bfb-2b2d-425c-9de2-8901ac1436fa",
   "metadata": {},
   "source": [
    "Additionally, if running remotely we will want to ensure that the remote Ray cluster has access to all the dependencies required to run the code in this tutorial."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "78973b5e-ce68-4a5d-8f83-dc38393856af",
   "metadata": {},
   "outputs": [],
   "source": [
    "import ray\n",
    "\n",
    "# Set up connection to Ray cluster if USE_REMOTE_CLUSTER=True\n",
    "if USE_REMOTE_CLUSTER:\n",
    "    ray.init(\n",
    "        address=RAY_ADDRESS,\n",
    "        runtime_env={\n",
    "            \"pip\": [\n",
    "                \"daft\",\n",
    "                \"torch\",\n",
    "                \"torchvision\",\n",
    "            ]\n",
    "        },\n",
    "    )\n",
    "    print(ray.available_resources())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "eb3d9ebd-821a-46ff-b047-5f5a6044fee2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DaftContext(_daft_execution_config=<daft.daft.PyDaftExecutionConfig object at 0x110081f90>, _daft_planning_config=<daft.daft.PyDaftPlanningConfig object at 0x110081f10>, _runner_config=_RayRunnerConfig(address=None, max_task_backlog=None), _disallow_set_runner=True, _runner=None)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "daft.context.set_runner_ray(address=RAY_ADDRESS)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7570a74f-393b-4331-a0ce-aad996905544",
   "metadata": {},
   "source": [
    "## Retrieving Data\n",
    "\n",
    "Now we're ready to get right to business!\n",
    "\n",
    "First, let's load some data from our DeltaLake table!!\n",
    "\n",
    "We've hosted a 10k row sample of the validation set of imagenet for you to try this out.\n",
    "\n",
    "Simply pass in the ``IOConfig`` that we previously created to the call in order to ensure that we can access the data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "5662943d-45e1-4a4d-ab0f-e94c6d1259ec",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table class=\"dataframe\">\n",
       "<thead><tr><th style=\"text-wrap: nowrap; max-width:192px; overflow:auto; text-align:left\">folder<br />Utf8</th><th style=\"text-wrap: nowrap; max-width:192px; overflow:auto; text-align:left\">filename<br />Utf8</th><th style=\"text-wrap: nowrap; max-width:192px; overflow:auto; text-align:left\">source<br />Struct[database: Utf8]</th><th style=\"text-wrap: nowrap; max-width:192px; overflow:auto; text-align:left\">size<br />Struct[depth: Utf8, height: Utf8, width: Utf8]</th><th style=\"text-wrap: nowrap; max-width:192px; overflow:auto; text-align:left\">segmented<br />Utf8</th><th style=\"text-wrap: nowrap; max-width:192px; overflow:auto; text-align:left\">object<br />List[Struct[bndbox: Struct[xmax: Utf8, xmin: Utf8, ymax: Utf8, ymin: Utf8], difficult: Utf8, name: Utf8, pose: Utf8, truncated: Utf8]]</th></tr></thead>\n",
       "</table>\n",
       "<small>(No data to display: Dataframe not materialized)</small>\n",
       "</div>"
      ],
      "text/plain": [
       "╭────────┬──────────┬────────────────────────┬─────────────────────────────┬───────────┬──────────────────────────╮\n",
       "│ folder ┆ filename ┆ source                 ┆ size                        ┆ segmented ┆ object                   │\n",
       "│ ---    ┆ ---      ┆ ---                    ┆ ---                         ┆ ---       ┆ ---                      │\n",
       "│ Utf8   ┆ Utf8     ┆ Struct[database: Utf8] ┆ Struct[depth: Utf8, height: ┆ Utf8      ┆ List[Struct[bndbox:      │\n",
       "│        ┆          ┆                        ┆ Utf8, width: Utf8]          ┆           ┆ Struct[xmax: Utf8, xmin: │\n",
       "│        ┆          ┆                        ┆                             ┆           ┆ Utf8, ymax: Utf8, ymin:  │\n",
       "│        ┆          ┆                        ┆                             ┆           ┆ Utf8], difficult: Utf8,  │\n",
       "│        ┆          ┆                        ┆                             ┆           ┆ name: Utf8, pose: Utf8,  │\n",
       "│        ┆          ┆                        ┆                             ┆           ┆ truncated: Utf8]]        │\n",
       "╰────────┴──────────┴────────────────────────┴─────────────────────────────┴───────────┴──────────────────────────╯\n",
       "\n",
       "(No data to display: Dataframe not materialized)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import daft\n",
    "\n",
    "df = daft.read_deltalake(\"s3://daft-public-datasets/imagenet/val-10k-sample-deltalake/\", io_config=io_config)\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "37a35164-989f-4161-b024-9164038f5d34",
   "metadata": {},
   "outputs": [],
   "source": [
    "# If running just locally in an example notebook, limit to 128 rows so we don't blow up!\n",
    "if not USE_REMOTE_CLUSTER:\n",
    "    df = df.limit(128)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "14ab53cd-b33c-4008-90af-e01926f7aca8",
   "metadata": {},
   "source": [
    "## Preprocessing\n",
    "\n",
    "We are now going to run some data pre-processing, which involves downloading the imagery data and running some basic image kernels."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "287bc36c-8c46-4da9-b8e3-1520ea7a229d",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Download and resize images\n",
    "df = df.with_column(\n",
    "    \"image_url\", \"s3://daft-public-datasets/imagenet/val-10k-sample-deltalake/images/\" + df[\"filename\"] + \".jpeg\"\n",
    ")\n",
    "df = df.with_column(\"image\", df[\"image_url\"].url.download().image.decode())\n",
    "df = df.with_column(\"image\", df[\"image\"].image.resize(256, 256))\n",
    "\n",
    "# Convert the images to a Tensor datatype\n",
    "df = df.with_column(\n",
    "    \"arr\",\n",
    "    (df[\"image\"].cast(daft.DataType.tensor(daft.DataType.uint8(), shape=(256, 256, 3)))),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "d54a5a39-e04e-43af-b48f-27c98f66c8fb",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Map class names to human-readable names and numeric IDs\n",
    "classes = [\n",
    "    (\"n01440764\", \"tench\"),\n",
    "    (\"n01443537\", \"goldfish\"),\n",
    "    (\"n01484850\", \"great_white_shark\"),\n",
    "    (\"n01491361\", \"tiger_shark\"),\n",
    "    (\"n01494475\", \"hammerhead\"),\n",
    "    (\"n01496331\", \"electric_ray\"),\n",
    "    (\"n01498041\", \"stingray\"),\n",
    "    (\"n01514668\", \"cock\"),\n",
    "    (\"n01514859\", \"hen\"),\n",
    "    (\"n01518878\", \"ostrich\"),\n",
    "    (\"n01530575\", \"brambling\"),\n",
    "    (\"n01531178\", \"goldfinch\"),\n",
    "    (\"n01532829\", \"house_finch\"),\n",
    "    (\"n01534433\", \"junco\"),\n",
    "    (\"n01537544\", \"indigo_bunting\"),\n",
    "    (\"n01558993\", \"robin\"),\n",
    "    (\"n01560419\", \"bulbul\"),\n",
    "    (\"n01580077\", \"jay\"),\n",
    "    (\"n01582220\", \"magpie\"),\n",
    "    (\"n01592084\", \"chickadee\"),\n",
    "    (\"n01601694\", \"water_ouzel\"),\n",
    "    (\"n01608432\", \"kite\"),\n",
    "    (\"n01614925\", \"bald_eagle\"),\n",
    "    (\"n01616318\", \"vulture\"),\n",
    "    (\"n01622779\", \"great_grey_owl\"),\n",
    "    (\"n01629819\", \"European_fire_salamander\"),\n",
    "    (\"n01630670\", \"common_newt\"),\n",
    "    (\"n01631663\", \"eft\"),\n",
    "    (\"n01632458\", \"spotted_salamander\"),\n",
    "    (\"n01632777\", \"axolotl\"),\n",
    "    (\"n01641577\", \"bullfrog\"),\n",
    "    (\"n01644373\", \"tree_frog\"),\n",
    "    (\"n01644900\", \"tailed_frog\"),\n",
    "    (\"n01664065\", \"loggerhead\"),\n",
    "    (\"n01665541\", \"leatherback_turtle\"),\n",
    "    (\"n01667114\", \"mud_turtle\"),\n",
    "    (\"n01667778\", \"terrapin\"),\n",
    "    (\"n01669191\", \"box_turtle\"),\n",
    "    (\"n01675722\", \"banded_gecko\"),\n",
    "    (\"n01677366\", \"common_iguana\"),\n",
    "    (\"n01682714\", \"American_chameleon\"),\n",
    "    (\"n01685808\", \"whiptail\"),\n",
    "    (\"n01687978\", \"agama\"),\n",
    "    (\"n01688243\", \"frilled_lizard\"),\n",
    "    (\"n01689811\", \"alligator_lizard\"),\n",
    "    (\"n01692333\", \"Gila_monster\"),\n",
    "    (\"n01693334\", \"green_lizard\"),\n",
    "    (\"n01694178\", \"African_chameleon\"),\n",
    "    (\"n01695060\", \"Komodo_dragon\"),\n",
    "    (\"n01697457\", \"African_crocodile\"),\n",
    "    (\"n01698640\", \"American_alligator\"),\n",
    "    (\"n01704323\", \"triceratops\"),\n",
    "    (\"n01728572\", \"thunder_snake\"),\n",
    "    (\"n01728920\", \"ringneck_snake\"),\n",
    "    (\"n01729322\", \"hognose_snake\"),\n",
    "    (\"n01729977\", \"green_snake\"),\n",
    "    (\"n01734418\", \"king_snake\"),\n",
    "    (\"n01735189\", \"garter_snake\"),\n",
    "    (\"n01737021\", \"water_snake\"),\n",
    "    (\"n01739381\", \"vine_snake\"),\n",
    "    (\"n01740131\", \"night_snake\"),\n",
    "    (\"n01742172\", \"boa_constrictor\"),\n",
    "    (\"n01744401\", \"rock_python\"),\n",
    "    (\"n01748264\", \"Indian_cobra\"),\n",
    "    (\"n01749939\", \"green_mamba\"),\n",
    "    (\"n01751748\", \"sea_snake\"),\n",
    "    (\"n01753488\", \"horned_viper\"),\n",
    "    (\"n01755581\", \"diamondback\"),\n",
    "    (\"n01756291\", \"sidewinder\"),\n",
    "    (\"n01768244\", \"trilobite\"),\n",
    "    (\"n01770081\", \"harvestman\"),\n",
    "    (\"n01770393\", \"scorpion\"),\n",
    "    (\"n01773157\", \"black_and_gold_garden_spider\"),\n",
    "    (\"n01773549\", \"barn_spider\"),\n",
    "    (\"n01773797\", \"garden_spider\"),\n",
    "    (\"n01774384\", \"black_widow\"),\n",
    "    (\"n01774750\", \"tarantula\"),\n",
    "    (\"n01775062\", \"wolf_spider\"),\n",
    "    (\"n01776313\", \"tick\"),\n",
    "    (\"n01784675\", \"centipede\"),\n",
    "    (\"n01795545\", \"black_grouse\"),\n",
    "    (\"n01796340\", \"ptarmigan\"),\n",
    "    (\"n01797886\", \"ruffed_grouse\"),\n",
    "    (\"n01798484\", \"prairie_chicken\"),\n",
    "    (\"n01806143\", \"peacock\"),\n",
    "    (\"n01806567\", \"quail\"),\n",
    "    (\"n01807496\", \"partridge\"),\n",
    "    (\"n01817953\", \"African_grey\"),\n",
    "    (\"n01818515\", \"macaw\"),\n",
    "    (\"n01819313\", \"sulphur-crested_cockatoo\"),\n",
    "    (\"n01820546\", \"lorikeet\"),\n",
    "    (\"n01824575\", \"coucal\"),\n",
    "    (\"n01828970\", \"bee_eater\"),\n",
    "    (\"n01829413\", \"hornbill\"),\n",
    "    (\"n01833805\", \"hummingbird\"),\n",
    "    (\"n01843065\", \"jacamar\"),\n",
    "    (\"n01843383\", \"toucan\"),\n",
    "    (\"n01847000\", \"drake\"),\n",
    "    (\"n01855032\", \"red-breasted_merganser\"),\n",
    "    (\"n01855672\", \"goose\"),\n",
    "    (\"n01860187\", \"black_swan\"),\n",
    "    (\"n01871265\", \"tusker\"),\n",
    "    (\"n01872401\", \"echidna\"),\n",
    "    (\"n01873310\", \"platypus\"),\n",
    "    (\"n01877812\", \"wallaby\"),\n",
    "    (\"n01882714\", \"koala\"),\n",
    "    (\"n01883070\", \"wombat\"),\n",
    "    (\"n01910747\", \"jellyfish\"),\n",
    "    (\"n01914609\", \"sea_anemone\"),\n",
    "    (\"n01917289\", \"brain_coral\"),\n",
    "    (\"n01924916\", \"flatworm\"),\n",
    "    (\"n01930112\", \"nematode\"),\n",
    "    (\"n01943899\", \"conch\"),\n",
    "    (\"n01944390\", \"snail\"),\n",
    "    (\"n01945685\", \"slug\"),\n",
    "    (\"n01950731\", \"sea_slug\"),\n",
    "    (\"n01955084\", \"chiton\"),\n",
    "    (\"n01968897\", \"chambered_nautilus\"),\n",
    "    (\"n01978287\", \"Dungeness_crab\"),\n",
    "    (\"n01978455\", \"rock_crab\"),\n",
    "    (\"n01980166\", \"fiddler_crab\"),\n",
    "    (\"n01981276\", \"king_crab\"),\n",
    "    (\"n01983481\", \"American_lobster\"),\n",
    "    (\"n01984695\", \"spiny_lobster\"),\n",
    "    (\"n01985128\", \"crayfish\"),\n",
    "    (\"n01986214\", \"hermit_crab\"),\n",
    "    (\"n01990800\", \"isopod\"),\n",
    "    (\"n02002556\", \"white_stork\"),\n",
    "    (\"n02002724\", \"black_stork\"),\n",
    "    (\"n02006656\", \"spoonbill\"),\n",
    "    (\"n02007558\", \"flamingo\"),\n",
    "    (\"n02009229\", \"little_blue_heron\"),\n",
    "    (\"n02009912\", \"American_egret\"),\n",
    "    (\"n02011460\", \"bittern\"),\n",
    "    (\"n02012849\", \"crane\"),\n",
    "    (\"n02013706\", \"limpkin\"),\n",
    "    (\"n02017213\", \"European_gallinule\"),\n",
    "    (\"n02018207\", \"American_coot\"),\n",
    "    (\"n02018795\", \"bustard\"),\n",
    "    (\"n02025239\", \"ruddy_turnstone\"),\n",
    "    (\"n02027492\", \"red-backed_sandpiper\"),\n",
    "    (\"n02028035\", \"redshank\"),\n",
    "    (\"n02033041\", \"dowitcher\"),\n",
    "    (\"n02037110\", \"oystercatcher\"),\n",
    "    (\"n02051845\", \"pelican\"),\n",
    "    (\"n02056570\", \"king_penguin\"),\n",
    "    (\"n02058221\", \"albatross\"),\n",
    "    (\"n02066245\", \"grey_whale\"),\n",
    "    (\"n02071294\", \"killer_whale\"),\n",
    "    (\"n02074367\", \"dugong\"),\n",
    "    (\"n02077923\", \"sea_lion\"),\n",
    "    (\"n02085620\", \"Chihuahua\"),\n",
    "    (\"n02085782\", \"Japanese_spaniel\"),\n",
    "    (\"n02085936\", \"Maltese_dog\"),\n",
    "    (\"n02086079\", \"Pekinese\"),\n",
    "    (\"n02086240\", \"Shih-Tzu\"),\n",
    "    (\"n02086646\", \"Blenheim_spaniel\"),\n",
    "    (\"n02086910\", \"papillon\"),\n",
    "    (\"n02087046\", \"toy_terrier\"),\n",
    "    (\"n02087394\", \"Rhodesian_ridgeback\"),\n",
    "    (\"n02088094\", \"Afghan_hound\"),\n",
    "    (\"n02088238\", \"basset\"),\n",
    "    (\"n02088364\", \"beagle\"),\n",
    "    (\"n02088466\", \"bloodhound\"),\n",
    "    (\"n02088632\", \"bluetick\"),\n",
    "    (\"n02089078\", \"black-and-tan_coonhound\"),\n",
    "    (\"n02089867\", \"Walker_hound\"),\n",
    "    (\"n02089973\", \"English_foxhound\"),\n",
    "    (\"n02090379\", \"redbone\"),\n",
    "    (\"n02090622\", \"borzoi\"),\n",
    "    (\"n02090721\", \"Irish_wolfhound\"),\n",
    "    (\"n02091032\", \"Italian_greyhound\"),\n",
    "    (\"n02091134\", \"whippet\"),\n",
    "    (\"n02091244\", \"Ibizan_hound\"),\n",
    "    (\"n02091467\", \"Norwegian_elkhound\"),\n",
    "    (\"n02091635\", \"otterhound\"),\n",
    "    (\"n02091831\", \"Saluki\"),\n",
    "    (\"n02092002\", \"Scottish_deerhound\"),\n",
    "    (\"n02092339\", \"Weimaraner\"),\n",
    "    (\"n02093256\", \"Staffordshire_bullterrier\"),\n",
    "    (\"n02093428\", \"American_Staffordshire_terrier\"),\n",
    "    (\"n02093647\", \"Bedlington_terrier\"),\n",
    "    (\"n02093754\", \"Border_terrier\"),\n",
    "    (\"n02093859\", \"Kerry_blue_terrier\"),\n",
    "    (\"n02093991\", \"Irish_terrier\"),\n",
    "    (\"n02094114\", \"Norfolk_terrier\"),\n",
    "    (\"n02094258\", \"Norwich_terrier\"),\n",
    "    (\"n02094433\", \"Yorkshire_terrier\"),\n",
    "    (\"n02095314\", \"wire-haired_fox_terrier\"),\n",
    "    (\"n02095570\", \"Lakeland_terrier\"),\n",
    "    (\"n02095889\", \"Sealyham_terrier\"),\n",
    "    (\"n02096051\", \"Airedale\"),\n",
    "    (\"n02096177\", \"cairn\"),\n",
    "    (\"n02096294\", \"Australian_terrier\"),\n",
    "    (\"n02096437\", \"Dandie_Dinmont\"),\n",
    "    (\"n02096585\", \"Boston_bull\"),\n",
    "    (\"n02097047\", \"miniature_schnauzer\"),\n",
    "    (\"n02097130\", \"giant_schnauzer\"),\n",
    "    (\"n02097209\", \"standard_schnauzer\"),\n",
    "    (\"n02097298\", \"Scotch_terrier\"),\n",
    "    (\"n02097474\", \"Tibetan_terrier\"),\n",
    "    (\"n02097658\", \"silky_terrier\"),\n",
    "    (\"n02098105\", \"soft-coated_wheaten_terrier\"),\n",
    "    (\"n02098286\", \"West_Highland_white_terrier\"),\n",
    "    (\"n02098413\", \"Lhasa\"),\n",
    "    (\"n02099267\", \"flat-coated_retriever\"),\n",
    "    (\"n02099429\", \"curly-coated_retriever\"),\n",
    "    (\"n02099601\", \"golden_retriever\"),\n",
    "    (\"n02099712\", \"Labrador_retriever\"),\n",
    "    (\"n02099849\", \"Chesapeake_Bay_retriever\"),\n",
    "    (\"n02100236\", \"German_short-haired_pointer\"),\n",
    "    (\"n02100583\", \"vizsla\"),\n",
    "    (\"n02100735\", \"English_setter\"),\n",
    "    (\"n02100877\", \"Irish_setter\"),\n",
    "    (\"n02101006\", \"Gordon_setter\"),\n",
    "    (\"n02101388\", \"Brittany_spaniel\"),\n",
    "    (\"n02101556\", \"clumber\"),\n",
    "    (\"n02102040\", \"English_springer\"),\n",
    "    (\"n02102177\", \"Welsh_springer_spaniel\"),\n",
    "    (\"n02102318\", \"cocker_spaniel\"),\n",
    "    (\"n02102480\", \"Sussex_spaniel\"),\n",
    "    (\"n02102973\", \"Irish_water_spaniel\"),\n",
    "    (\"n02104029\", \"kuvasz\"),\n",
    "    (\"n02104365\", \"schipperke\"),\n",
    "    (\"n02105056\", \"groenendael\"),\n",
    "    (\"n02105162\", \"malinois\"),\n",
    "    (\"n02105251\", \"briard\"),\n",
    "    (\"n02105412\", \"kelpie\"),\n",
    "    (\"n02105505\", \"komondor\"),\n",
    "    (\"n02105641\", \"Old_English_sheepdog\"),\n",
    "    (\"n02105855\", \"Shetland_sheepdog\"),\n",
    "    (\"n02106030\", \"collie\"),\n",
    "    (\"n02106166\", \"Border_collie\"),\n",
    "    (\"n02106382\", \"Bouvier_des_Flandres\"),\n",
    "    (\"n02106550\", \"Rottweiler\"),\n",
    "    (\"n02106662\", \"German_shepherd\"),\n",
    "    (\"n02107142\", \"Doberman\"),\n",
    "    (\"n02107312\", \"miniature_pinscher\"),\n",
    "    (\"n02107574\", \"Greater_Swiss_Mountain_dog\"),\n",
    "    (\"n02107683\", \"Bernese_mountain_dog\"),\n",
    "    (\"n02107908\", \"Appenzeller\"),\n",
    "    (\"n02108000\", \"EntleBucher\"),\n",
    "    (\"n02108089\", \"boxer\"),\n",
    "    (\"n02108422\", \"bull_mastiff\"),\n",
    "    (\"n02108551\", \"Tibetan_mastiff\"),\n",
    "    (\"n02108915\", \"French_bulldog\"),\n",
    "    (\"n02109047\", \"Great_Dane\"),\n",
    "    (\"n02109525\", \"Saint_Bernard\"),\n",
    "    (\"n02109961\", \"Eskimo_dog\"),\n",
    "    (\"n02110063\", \"malamute\"),\n",
    "    (\"n02110185\", \"Siberian_husky\"),\n",
    "    (\"n02110341\", \"dalmatian\"),\n",
    "    (\"n02110627\", \"affenpinscher\"),\n",
    "    (\"n02110806\", \"basenji\"),\n",
    "    (\"n02110958\", \"pug\"),\n",
    "    (\"n02111129\", \"Leonberg\"),\n",
    "    (\"n02111277\", \"Newfoundland\"),\n",
    "    (\"n02111500\", \"Great_Pyrenees\"),\n",
    "    (\"n02111889\", \"Samoyed\"),\n",
    "    (\"n02112018\", \"Pomeranian\"),\n",
    "    (\"n02112137\", \"chow\"),\n",
    "    (\"n02112350\", \"keeshond\"),\n",
    "    (\"n02112706\", \"Brabancon_griffon\"),\n",
    "    (\"n02113023\", \"Pembroke\"),\n",
    "    (\"n02113186\", \"Cardigan\"),\n",
    "    (\"n02113624\", \"toy_poodle\"),\n",
    "    (\"n02113712\", \"miniature_poodle\"),\n",
    "    (\"n02113799\", \"standard_poodle\"),\n",
    "    (\"n02113978\", \"Mexican_hairless\"),\n",
    "    (\"n02114367\", \"timber_wolf\"),\n",
    "    (\"n02114548\", \"white_wolf\"),\n",
    "    (\"n02114712\", \"red_wolf\"),\n",
    "    (\"n02114855\", \"coyote\"),\n",
    "    (\"n02115641\", \"dingo\"),\n",
    "    (\"n02115913\", \"dhole\"),\n",
    "    (\"n02116738\", \"African_hunting_dog\"),\n",
    "    (\"n02117135\", \"hyena\"),\n",
    "    (\"n02119022\", \"red_fox\"),\n",
    "    (\"n02119789\", \"kit_fox\"),\n",
    "    (\"n02120079\", \"Arctic_fox\"),\n",
    "    (\"n02120505\", \"grey_fox\"),\n",
    "    (\"n02123045\", \"tabby\"),\n",
    "    (\"n02123159\", \"tiger_cat\"),\n",
    "    (\"n02123394\", \"Persian_cat\"),\n",
    "    (\"n02123597\", \"Siamese_cat\"),\n",
    "    (\"n02124075\", \"Egyptian_cat\"),\n",
    "    (\"n02125311\", \"cougar\"),\n",
    "    (\"n02127052\", \"lynx\"),\n",
    "    (\"n02128385\", \"leopard\"),\n",
    "    (\"n02128757\", \"snow_leopard\"),\n",
    "    (\"n02128925\", \"jaguar\"),\n",
    "    (\"n02129165\", \"lion\"),\n",
    "    (\"n02129604\", \"tiger\"),\n",
    "    (\"n02130308\", \"cheetah\"),\n",
    "    (\"n02132136\", \"brown_bear\"),\n",
    "    (\"n02133161\", \"American_black_bear\"),\n",
    "    (\"n02134084\", \"ice_bear\"),\n",
    "    (\"n02134418\", \"sloth_bear\"),\n",
    "    (\"n02137549\", \"mongoose\"),\n",
    "    (\"n02138441\", \"meerkat\"),\n",
    "    (\"n02165105\", \"tiger_beetle\"),\n",
    "    (\"n02165456\", \"ladybug\"),\n",
    "    (\"n02167151\", \"ground_beetle\"),\n",
    "    (\"n02168699\", \"long-horned_beetle\"),\n",
    "    (\"n02169497\", \"leaf_beetle\"),\n",
    "    (\"n02172182\", \"dung_beetle\"),\n",
    "    (\"n02174001\", \"rhinoceros_beetle\"),\n",
    "    (\"n02177972\", \"weevil\"),\n",
    "    (\"n02190166\", \"fly\"),\n",
    "    (\"n02206856\", \"bee\"),\n",
    "    (\"n02219486\", \"ant\"),\n",
    "    (\"n02226429\", \"grasshopper\"),\n",
    "    (\"n02229544\", \"cricket\"),\n",
    "    (\"n02231487\", \"walking_stick\"),\n",
    "    (\"n02233338\", \"cockroach\"),\n",
    "    (\"n02236044\", \"mantis\"),\n",
    "    (\"n02256656\", \"cicada\"),\n",
    "    (\"n02259212\", \"leafhopper\"),\n",
    "    (\"n02264363\", \"lacewing\"),\n",
    "    (\"n02268443\", \"dragonfly\"),\n",
    "    (\"n02268853\", \"damselfly\"),\n",
    "    (\"n02276258\", \"admiral\"),\n",
    "    (\"n02277742\", \"ringlet\"),\n",
    "    (\"n02279972\", \"monarch\"),\n",
    "    (\"n02280649\", \"cabbage_butterfly\"),\n",
    "    (\"n02281406\", \"sulphur_butterfly\"),\n",
    "    (\"n02281787\", \"lycaenid\"),\n",
    "    (\"n02317335\", \"starfish\"),\n",
    "    (\"n02319095\", \"sea_urchin\"),\n",
    "    (\"n02321529\", \"sea_cucumber\"),\n",
    "    (\"n02325366\", \"wood_rabbit\"),\n",
    "    (\"n02326432\", \"hare\"),\n",
    "    (\"n02328150\", \"Angora\"),\n",
    "    (\"n02342885\", \"hamster\"),\n",
    "    (\"n02346627\", \"porcupine\"),\n",
    "    (\"n02356798\", \"fox_squirrel\"),\n",
    "    (\"n02361337\", \"marmot\"),\n",
    "    (\"n02363005\", \"beaver\"),\n",
    "    (\"n02364673\", \"guinea_pig\"),\n",
    "    (\"n02389026\", \"sorrel\"),\n",
    "    (\"n02391049\", \"zebra\"),\n",
    "    (\"n02395406\", \"hog\"),\n",
    "    (\"n02396427\", \"wild_boar\"),\n",
    "    (\"n02397096\", \"warthog\"),\n",
    "    (\"n02398521\", \"hippopotamus\"),\n",
    "    (\"n02403003\", \"ox\"),\n",
    "    (\"n02408429\", \"water_buffalo\"),\n",
    "    (\"n02410509\", \"bison\"),\n",
    "    (\"n02412080\", \"ram\"),\n",
    "    (\"n02415577\", \"bighorn\"),\n",
    "    (\"n02417914\", \"ibex\"),\n",
    "    (\"n02422106\", \"hartebeest\"),\n",
    "    (\"n02422699\", \"impala\"),\n",
    "    (\"n02423022\", \"gazelle\"),\n",
    "    (\"n02437312\", \"Arabian_camel\"),\n",
    "    (\"n02437616\", \"llama\"),\n",
    "    (\"n02441942\", \"weasel\"),\n",
    "    (\"n02442845\", \"mink\"),\n",
    "    (\"n02443114\", \"polecat\"),\n",
    "    (\"n02443484\", \"black-footed_ferret\"),\n",
    "    (\"n02444819\", \"otter\"),\n",
    "    (\"n02445715\", \"skunk\"),\n",
    "    (\"n02447366\", \"badger\"),\n",
    "    (\"n02454379\", \"armadillo\"),\n",
    "    (\"n02457408\", \"three-toed_sloth\"),\n",
    "    (\"n02480495\", \"orangutan\"),\n",
    "    (\"n02480855\", \"gorilla\"),\n",
    "    (\"n02481823\", \"chimpanzee\"),\n",
    "    (\"n02483362\", \"gibbon\"),\n",
    "    (\"n02483708\", \"siamang\"),\n",
    "    (\"n02484975\", \"guenon\"),\n",
    "    (\"n02486261\", \"patas\"),\n",
    "    (\"n02486410\", \"baboon\"),\n",
    "    (\"n02487347\", \"macaque\"),\n",
    "    (\"n02488291\", \"langur\"),\n",
    "    (\"n02488702\", \"colobus\"),\n",
    "    (\"n02489166\", \"proboscis_monkey\"),\n",
    "    (\"n02490219\", \"marmoset\"),\n",
    "    (\"n02492035\", \"capuchin\"),\n",
    "    (\"n02492660\", \"howler_monkey\"),\n",
    "    (\"n02493509\", \"titi\"),\n",
    "    (\"n02493793\", \"spider_monkey\"),\n",
    "    (\"n02494079\", \"squirrel_monkey\"),\n",
    "    (\"n02497673\", \"Madagascar_cat\"),\n",
    "    (\"n02500267\", \"indri\"),\n",
    "    (\"n02504013\", \"Indian_elephant\"),\n",
    "    (\"n02504458\", \"African_elephant\"),\n",
    "    (\"n02509815\", \"lesser_panda\"),\n",
    "    (\"n02510455\", \"giant_panda\"),\n",
    "    (\"n02514041\", \"barracouta\"),\n",
    "    (\"n02526121\", \"eel\"),\n",
    "    (\"n02536864\", \"coho\"),\n",
    "    (\"n02606052\", \"rock_beauty\"),\n",
    "    (\"n02607072\", \"anemone_fish\"),\n",
    "    (\"n02640242\", \"sturgeon\"),\n",
    "    (\"n02641379\", \"gar\"),\n",
    "    (\"n02643566\", \"lionfish\"),\n",
    "    (\"n02655020\", \"puffer\"),\n",
    "    (\"n02666196\", \"abacus\"),\n",
    "    (\"n02667093\", \"abaya\"),\n",
    "    (\"n02669723\", \"academic_gown\"),\n",
    "    (\"n02672831\", \"accordion\"),\n",
    "    (\"n02676566\", \"acoustic_guitar\"),\n",
    "    (\"n02687172\", \"aircraft_carrier\"),\n",
    "    (\"n02690373\", \"airliner\"),\n",
    "    (\"n02692877\", \"airship\"),\n",
    "    (\"n02699494\", \"altar\"),\n",
    "    (\"n02701002\", \"ambulance\"),\n",
    "    (\"n02704792\", \"amphibian\"),\n",
    "    (\"n02708093\", \"analog_clock\"),\n",
    "    (\"n02727426\", \"apiary\"),\n",
    "    (\"n02730930\", \"apron\"),\n",
    "    (\"n02747177\", \"ashcan\"),\n",
    "    (\"n02749479\", \"assault_rifle\"),\n",
    "    (\"n02769748\", \"backpack\"),\n",
    "    (\"n02776631\", \"bakery\"),\n",
    "    (\"n02777292\", \"balance_beam\"),\n",
    "    (\"n02782093\", \"balloon\"),\n",
    "    (\"n02783161\", \"ballpoint\"),\n",
    "    (\"n02786058\", \"Band_Aid\"),\n",
    "    (\"n02787622\", \"banjo\"),\n",
    "    (\"n02788148\", \"bannister\"),\n",
    "    (\"n02790996\", \"barbell\"),\n",
    "    (\"n02791124\", \"barber_chair\"),\n",
    "    (\"n02791270\", \"barbershop\"),\n",
    "    (\"n02793495\", \"barn\"),\n",
    "    (\"n02794156\", \"barometer\"),\n",
    "    (\"n02795169\", \"barrel\"),\n",
    "    (\"n02797295\", \"barrow\"),\n",
    "    (\"n02799071\", \"baseball\"),\n",
    "    (\"n02802426\", \"basketball\"),\n",
    "    (\"n02804414\", \"bassinet\"),\n",
    "    (\"n02804610\", \"bassoon\"),\n",
    "    (\"n02807133\", \"bathing_cap\"),\n",
    "    (\"n02808304\", \"bath_towel\"),\n",
    "    (\"n02808440\", \"bathtub\"),\n",
    "    (\"n02814533\", \"beach_wagon\"),\n",
    "    (\"n02814860\", \"beacon\"),\n",
    "    (\"n02815834\", \"beaker\"),\n",
    "    (\"n02817516\", \"bearskin\"),\n",
    "    (\"n02823428\", \"beer_bottle\"),\n",
    "    (\"n02823750\", \"beer_glass\"),\n",
    "    (\"n02825657\", \"bell_cote\"),\n",
    "    (\"n02834397\", \"bib\"),\n",
    "    (\"n02835271\", \"bicycle-built-for-two\"),\n",
    "    (\"n02837789\", \"bikini\"),\n",
    "    (\"n02840245\", \"binder\"),\n",
    "    (\"n02841315\", \"binoculars\"),\n",
    "    (\"n02843684\", \"birdhouse\"),\n",
    "    (\"n02859443\", \"boathouse\"),\n",
    "    (\"n02860847\", \"bobsled\"),\n",
    "    (\"n02865351\", \"bolo_tie\"),\n",
    "    (\"n02869837\", \"bonnet\"),\n",
    "    (\"n02870880\", \"bookcase\"),\n",
    "    (\"n02871525\", \"bookshop\"),\n",
    "    (\"n02877765\", \"bottlecap\"),\n",
    "    (\"n02879718\", \"bow\"),\n",
    "    (\"n02883205\", \"bow_tie\"),\n",
    "    (\"n02892201\", \"brass\"),\n",
    "    (\"n02892767\", \"brassiere\"),\n",
    "    (\"n02894605\", \"breakwater\"),\n",
    "    (\"n02895154\", \"breastplate\"),\n",
    "    (\"n02906734\", \"broom\"),\n",
    "    (\"n02909870\", \"bucket\"),\n",
    "    (\"n02910353\", \"buckle\"),\n",
    "    (\"n02916936\", \"bulletproof_vest\"),\n",
    "    (\"n02917067\", \"bullet_train\"),\n",
    "    (\"n02927161\", \"butcher_shop\"),\n",
    "    (\"n02930766\", \"cab\"),\n",
    "    (\"n02939185\", \"caldron\"),\n",
    "    (\"n02948072\", \"candle\"),\n",
    "    (\"n02950826\", \"cannon\"),\n",
    "    (\"n02951358\", \"canoe\"),\n",
    "    (\"n02951585\", \"can_opener\"),\n",
    "    (\"n02963159\", \"cardigan\"),\n",
    "    (\"n02965783\", \"car_mirror\"),\n",
    "    (\"n02966193\", \"carousel\"),\n",
    "    (\"n02966687\", \"carpenter's_kit\"),\n",
    "    (\"n02971356\", \"carton\"),\n",
    "    (\"n02974003\", \"car_wheel\"),\n",
    "    (\"n02977058\", \"cash_machine\"),\n",
    "    (\"n02978881\", \"cassette\"),\n",
    "    (\"n02979186\", \"cassette_player\"),\n",
    "    (\"n02980441\", \"castle\"),\n",
    "    (\"n02981792\", \"catamaran\"),\n",
    "    (\"n02988304\", \"CD_player\"),\n",
    "    (\"n02992211\", \"cello\"),\n",
    "    (\"n02992529\", \"cellular_telephone\"),\n",
    "    (\"n02999410\", \"chain\"),\n",
    "    (\"n03000134\", \"chainlink_fence\"),\n",
    "    (\"n03000247\", \"chain_mail\"),\n",
    "    (\"n03000684\", \"chain_saw\"),\n",
    "    (\"n03014705\", \"chest\"),\n",
    "    (\"n03016953\", \"chiffonier\"),\n",
    "    (\"n03017168\", \"chime\"),\n",
    "    (\"n03018349\", \"china_cabinet\"),\n",
    "    (\"n03026506\", \"Christmas_stocking\"),\n",
    "    (\"n03028079\", \"church\"),\n",
    "    (\"n03032252\", \"cinema\"),\n",
    "    (\"n03041632\", \"cleaver\"),\n",
    "    (\"n03042490\", \"cliff_dwelling\"),\n",
    "    (\"n03045698\", \"cloak\"),\n",
    "    (\"n03047690\", \"clog\"),\n",
    "    (\"n03062245\", \"cocktail_shaker\"),\n",
    "    (\"n03063599\", \"coffee_mug\"),\n",
    "    (\"n03063689\", \"coffeepot\"),\n",
    "    (\"n03065424\", \"coil\"),\n",
    "    (\"n03075370\", \"combination_lock\"),\n",
    "    (\"n03085013\", \"computer_keyboard\"),\n",
    "    (\"n03089624\", \"confectionery\"),\n",
    "    (\"n03095699\", \"container_ship\"),\n",
    "    (\"n03100240\", \"convertible\"),\n",
    "    (\"n03109150\", \"corkscrew\"),\n",
    "    (\"n03110669\", \"cornet\"),\n",
    "    (\"n03124043\", \"cowboy_boot\"),\n",
    "    (\"n03124170\", \"cowboy_hat\"),\n",
    "    (\"n03125729\", \"cradle\"),\n",
    "    (\"n03126707\", \"crane\"),\n",
    "    (\"n03127747\", \"crash_helmet\"),\n",
    "    (\"n03127925\", \"crate\"),\n",
    "    (\"n03131574\", \"crib\"),\n",
    "    (\"n03133878\", \"Crock_Pot\"),\n",
    "    (\"n03134739\", \"croquet_ball\"),\n",
    "    (\"n03141823\", \"crutch\"),\n",
    "    (\"n03146219\", \"cuirass\"),\n",
    "    (\"n03160309\", \"dam\"),\n",
    "    (\"n03179701\", \"desk\"),\n",
    "    (\"n03180011\", \"desktop_computer\"),\n",
    "    (\"n03187595\", \"dial_telephone\"),\n",
    "    (\"n03188531\", \"diaper\"),\n",
    "    (\"n03196217\", \"digital_clock\"),\n",
    "    (\"n03197337\", \"digital_watch\"),\n",
    "    (\"n03201208\", \"dining_table\"),\n",
    "    (\"n03207743\", \"dishrag\"),\n",
    "    (\"n03207941\", \"dishwasher\"),\n",
    "    (\"n03208938\", \"disk_brake\"),\n",
    "    (\"n03216828\", \"dock\"),\n",
    "    (\"n03218198\", \"dogsled\"),\n",
    "    (\"n03220513\", \"dome\"),\n",
    "    (\"n03223299\", \"doormat\"),\n",
    "    (\"n03240683\", \"drilling_platform\"),\n",
    "    (\"n03249569\", \"drum\"),\n",
    "    (\"n03250847\", \"drumstick\"),\n",
    "    (\"n03255030\", \"dumbbell\"),\n",
    "    (\"n03259280\", \"Dutch_oven\"),\n",
    "    (\"n03271574\", \"electric_fan\"),\n",
    "    (\"n03272010\", \"electric_guitar\"),\n",
    "    (\"n03272562\", \"electric_locomotive\"),\n",
    "    (\"n03290653\", \"entertainment_center\"),\n",
    "    (\"n03291819\", \"envelope\"),\n",
    "    (\"n03297495\", \"espresso_maker\"),\n",
    "    (\"n03314780\", \"face_powder\"),\n",
    "    (\"n03325584\", \"feather_boa\"),\n",
    "    (\"n03337140\", \"file\"),\n",
    "    (\"n03344393\", \"fireboat\"),\n",
    "    (\"n03345487\", \"fire_engine\"),\n",
    "    (\"n03347037\", \"fire_screen\"),\n",
    "    (\"n03355925\", \"flagpole\"),\n",
    "    (\"n03372029\", \"flute\"),\n",
    "    (\"n03376595\", \"folding_chair\"),\n",
    "    (\"n03379051\", \"football_helmet\"),\n",
    "    (\"n03384352\", \"forklift\"),\n",
    "    (\"n03388043\", \"fountain\"),\n",
    "    (\"n03388183\", \"fountain_pen\"),\n",
    "    (\"n03388549\", \"four-poster\"),\n",
    "    (\"n03393912\", \"freight_car\"),\n",
    "    (\"n03394916\", \"French_horn\"),\n",
    "    (\"n03400231\", \"frying_pan\"),\n",
    "    (\"n03404251\", \"fur_coat\"),\n",
    "    (\"n03417042\", \"garbage_truck\"),\n",
    "    (\"n03424325\", \"gasmask\"),\n",
    "    (\"n03425413\", \"gas_pump\"),\n",
    "    (\"n03443371\", \"goblet\"),\n",
    "    (\"n03444034\", \"go-kart\"),\n",
    "    (\"n03445777\", \"golf_ball\"),\n",
    "    (\"n03445924\", \"golfcart\"),\n",
    "    (\"n03447447\", \"gondola\"),\n",
    "    (\"n03447721\", \"gong\"),\n",
    "    (\"n03450230\", \"gown\"),\n",
    "    (\"n03452741\", \"grand_piano\"),\n",
    "    (\"n03457902\", \"greenhouse\"),\n",
    "    (\"n03459775\", \"grille\"),\n",
    "    (\"n03461385\", \"grocery_store\"),\n",
    "    (\"n03467068\", \"guillotine\"),\n",
    "    (\"n03476684\", \"hair_slide\"),\n",
    "    (\"n03476991\", \"hair_spray\"),\n",
    "    (\"n03478589\", \"half_track\"),\n",
    "    (\"n03481172\", \"hammer\"),\n",
    "    (\"n03482405\", \"hamper\"),\n",
    "    (\"n03483316\", \"hand_blower\"),\n",
    "    (\"n03485407\", \"hand-held_computer\"),\n",
    "    (\"n03485794\", \"handkerchief\"),\n",
    "    (\"n03492542\", \"hard_disc\"),\n",
    "    (\"n03494278\", \"harmonica\"),\n",
    "    (\"n03495258\", \"harp\"),\n",
    "    (\"n03496892\", \"harvester\"),\n",
    "    (\"n03498962\", \"hatchet\"),\n",
    "    (\"n03527444\", \"holster\"),\n",
    "    (\"n03529860\", \"home_theater\"),\n",
    "    (\"n03530642\", \"honeycomb\"),\n",
    "    (\"n03532672\", \"hook\"),\n",
    "    (\"n03534580\", \"hoopskirt\"),\n",
    "    (\"n03535780\", \"horizontal_bar\"),\n",
    "    (\"n03538406\", \"horse_cart\"),\n",
    "    (\"n03544143\", \"hourglass\"),\n",
    "    (\"n03584254\", \"iPod\"),\n",
    "    (\"n03584829\", \"iron\"),\n",
    "    (\"n03590841\", \"jack-o'-lantern\"),\n",
    "    (\"n03594734\", \"jean\"),\n",
    "    (\"n03594945\", \"jeep\"),\n",
    "    (\"n03595614\", \"jersey\"),\n",
    "    (\"n03598930\", \"jigsaw_puzzle\"),\n",
    "    (\"n03599486\", \"jinrikisha\"),\n",
    "    (\"n03602883\", \"joystick\"),\n",
    "    (\"n03617480\", \"kimono\"),\n",
    "    (\"n03623198\", \"knee_pad\"),\n",
    "    (\"n03627232\", \"knot\"),\n",
    "    (\"n03630383\", \"lab_coat\"),\n",
    "    (\"n03633091\", \"ladle\"),\n",
    "    (\"n03637318\", \"lampshade\"),\n",
    "    (\"n03642806\", \"laptop\"),\n",
    "    (\"n03649909\", \"lawn_mower\"),\n",
    "    (\"n03657121\", \"lens_cap\"),\n",
    "    (\"n03658185\", \"letter_opener\"),\n",
    "    (\"n03661043\", \"library\"),\n",
    "    (\"n03662601\", \"lifeboat\"),\n",
    "    (\"n03666591\", \"lighter\"),\n",
    "    (\"n03670208\", \"limousine\"),\n",
    "    (\"n03673027\", \"liner\"),\n",
    "    (\"n03676483\", \"lipstick\"),\n",
    "    (\"n03680355\", \"Loafer\"),\n",
    "    (\"n03690938\", \"lotion\"),\n",
    "    (\"n03691459\", \"loudspeaker\"),\n",
    "    (\"n03692522\", \"loupe\"),\n",
    "    (\"n03697007\", \"lumbermill\"),\n",
    "    (\"n03706229\", \"magnetic_compass\"),\n",
    "    (\"n03709823\", \"mailbag\"),\n",
    "    (\"n03710193\", \"mailbox\"),\n",
    "    (\"n03710637\", \"maillot\"),\n",
    "    (\"n03710721\", \"maillot\"),\n",
    "    (\"n03717622\", \"manhole_cover\"),\n",
    "    (\"n03720891\", \"maraca\"),\n",
    "    (\"n03721384\", \"marimba\"),\n",
    "    (\"n03724870\", \"mask\"),\n",
    "    (\"n03729826\", \"matchstick\"),\n",
    "    (\"n03733131\", \"maypole\"),\n",
    "    (\"n03733281\", \"maze\"),\n",
    "    (\"n03733805\", \"measuring_cup\"),\n",
    "    (\"n03742115\", \"medicine_chest\"),\n",
    "    (\"n03743016\", \"megalith\"),\n",
    "    (\"n03759954\", \"microphone\"),\n",
    "    (\"n03761084\", \"microwave\"),\n",
    "    (\"n03763968\", \"military_uniform\"),\n",
    "    (\"n03764736\", \"milk_can\"),\n",
    "    (\"n03769881\", \"minibus\"),\n",
    "    (\"n03770439\", \"miniskirt\"),\n",
    "    (\"n03770679\", \"minivan\"),\n",
    "    (\"n03773504\", \"missile\"),\n",
    "    (\"n03775071\", \"mitten\"),\n",
    "    (\"n03775546\", \"mixing_bowl\"),\n",
    "    (\"n03776460\", \"mobile_home\"),\n",
    "    (\"n03777568\", \"Model_T\"),\n",
    "    (\"n03777754\", \"modem\"),\n",
    "    (\"n03781244\", \"monastery\"),\n",
    "    (\"n03782006\", \"monitor\"),\n",
    "    (\"n03785016\", \"moped\"),\n",
    "    (\"n03786901\", \"mortar\"),\n",
    "    (\"n03787032\", \"mortarboard\"),\n",
    "    (\"n03788195\", \"mosque\"),\n",
    "    (\"n03788365\", \"mosquito_net\"),\n",
    "    (\"n03791053\", \"motor_scooter\"),\n",
    "    (\"n03792782\", \"mountain_bike\"),\n",
    "    (\"n03792972\", \"mountain_tent\"),\n",
    "    (\"n03793489\", \"mouse\"),\n",
    "    (\"n03794056\", \"mousetrap\"),\n",
    "    (\"n03796401\", \"moving_van\"),\n",
    "    (\"n03803284\", \"muzzle\"),\n",
    "    (\"n03804744\", \"nail\"),\n",
    "    (\"n03814639\", \"neck_brace\"),\n",
    "    (\"n03814906\", \"necklace\"),\n",
    "    (\"n03825788\", \"nipple\"),\n",
    "    (\"n03832673\", \"notebook\"),\n",
    "    (\"n03837869\", \"obelisk\"),\n",
    "    (\"n03838899\", \"oboe\"),\n",
    "    (\"n03840681\", \"ocarina\"),\n",
    "    (\"n03841143\", \"odometer\"),\n",
    "    (\"n03843555\", \"oil_filter\"),\n",
    "    (\"n03854065\", \"organ\"),\n",
    "    (\"n03857828\", \"oscilloscope\"),\n",
    "    (\"n03866082\", \"overskirt\"),\n",
    "    (\"n03868242\", \"oxcart\"),\n",
    "    (\"n03868863\", \"oxygen_mask\"),\n",
    "    (\"n03871628\", \"packet\"),\n",
    "    (\"n03873416\", \"paddle\"),\n",
    "    (\"n03874293\", \"paddlewheel\"),\n",
    "    (\"n03874599\", \"padlock\"),\n",
    "    (\"n03876231\", \"paintbrush\"),\n",
    "    (\"n03877472\", \"pajama\"),\n",
    "    (\"n03877845\", \"palace\"),\n",
    "    (\"n03884397\", \"panpipe\"),\n",
    "    (\"n03887697\", \"paper_towel\"),\n",
    "    (\"n03888257\", \"parachute\"),\n",
    "    (\"n03888605\", \"parallel_bars\"),\n",
    "    (\"n03891251\", \"park_bench\"),\n",
    "    (\"n03891332\", \"parking_meter\"),\n",
    "    (\"n03895866\", \"passenger_car\"),\n",
    "    (\"n03899768\", \"patio\"),\n",
    "    (\"n03902125\", \"pay-phone\"),\n",
    "    (\"n03903868\", \"pedestal\"),\n",
    "    (\"n03908618\", \"pencil_box\"),\n",
    "    (\"n03908714\", \"pencil_sharpener\"),\n",
    "    (\"n03916031\", \"perfume\"),\n",
    "    (\"n03920288\", \"Petri_dish\"),\n",
    "    (\"n03924679\", \"photocopier\"),\n",
    "    (\"n03929660\", \"pick\"),\n",
    "    (\"n03929855\", \"pickelhaube\"),\n",
    "    (\"n03930313\", \"picket_fence\"),\n",
    "    (\"n03930630\", \"pickup\"),\n",
    "    (\"n03933933\", \"pier\"),\n",
    "    (\"n03935335\", \"piggy_bank\"),\n",
    "    (\"n03937543\", \"pill_bottle\"),\n",
    "    (\"n03938244\", \"pillow\"),\n",
    "    (\"n03942813\", \"ping-pong_ball\"),\n",
    "    (\"n03944341\", \"pinwheel\"),\n",
    "    (\"n03947888\", \"pirate\"),\n",
    "    (\"n03950228\", \"pitcher\"),\n",
    "    (\"n03954731\", \"plane\"),\n",
    "    (\"n03956157\", \"planetarium\"),\n",
    "    (\"n03958227\", \"plastic_bag\"),\n",
    "    (\"n03961711\", \"plate_rack\"),\n",
    "    (\"n03967562\", \"plow\"),\n",
    "    (\"n03970156\", \"plunger\"),\n",
    "    (\"n03976467\", \"Polaroid_camera\"),\n",
    "    (\"n03976657\", \"pole\"),\n",
    "    (\"n03977966\", \"police_van\"),\n",
    "    (\"n03980874\", \"poncho\"),\n",
    "    (\"n03982430\", \"pool_table\"),\n",
    "    (\"n03983396\", \"pop_bottle\"),\n",
    "    (\"n03991062\", \"pot\"),\n",
    "    (\"n03992509\", \"potter's_wheel\"),\n",
    "    (\"n03995372\", \"power_drill\"),\n",
    "    (\"n03998194\", \"prayer_rug\"),\n",
    "    (\"n04004767\", \"printer\"),\n",
    "    (\"n04005630\", \"prison\"),\n",
    "    (\"n04008634\", \"projectile\"),\n",
    "    (\"n04009552\", \"projector\"),\n",
    "    (\"n04019541\", \"puck\"),\n",
    "    (\"n04023962\", \"punching_bag\"),\n",
    "    (\"n04026417\", \"purse\"),\n",
    "    (\"n04033901\", \"quill\"),\n",
    "    (\"n04033995\", \"quilt\"),\n",
    "    (\"n04037443\", \"racer\"),\n",
    "    (\"n04039381\", \"racket\"),\n",
    "    (\"n04040759\", \"radiator\"),\n",
    "    (\"n04041544\", \"radio\"),\n",
    "    (\"n04044716\", \"radio_telescope\"),\n",
    "    (\"n04049303\", \"rain_barrel\"),\n",
    "    (\"n04065272\", \"recreational_vehicle\"),\n",
    "    (\"n04067472\", \"reel\"),\n",
    "    (\"n04069434\", \"reflex_camera\"),\n",
    "    (\"n04070727\", \"refrigerator\"),\n",
    "    (\"n04074963\", \"remote_control\"),\n",
    "    (\"n04081281\", \"restaurant\"),\n",
    "    (\"n04086273\", \"revolver\"),\n",
    "    (\"n04090263\", \"rifle\"),\n",
    "    (\"n04099969\", \"rocking_chair\"),\n",
    "    (\"n04111531\", \"rotisserie\"),\n",
    "    (\"n04116512\", \"rubber_eraser\"),\n",
    "    (\"n04118538\", \"rugby_ball\"),\n",
    "    (\"n04118776\", \"rule\"),\n",
    "    (\"n04120489\", \"running_shoe\"),\n",
    "    (\"n04125021\", \"safe\"),\n",
    "    (\"n04127249\", \"safety_pin\"),\n",
    "    (\"n04131690\", \"saltshaker\"),\n",
    "    (\"n04133789\", \"sandal\"),\n",
    "    (\"n04136333\", \"sarong\"),\n",
    "    (\"n04141076\", \"sax\"),\n",
    "    (\"n04141327\", \"scabbard\"),\n",
    "    (\"n04141975\", \"scale\"),\n",
    "    (\"n04146614\", \"school_bus\"),\n",
    "    (\"n04147183\", \"schooner\"),\n",
    "    (\"n04149813\", \"scoreboard\"),\n",
    "    (\"n04152593\", \"screen\"),\n",
    "    (\"n04153751\", \"screw\"),\n",
    "    (\"n04154565\", \"screwdriver\"),\n",
    "    (\"n04162706\", \"seat_belt\"),\n",
    "    (\"n04179913\", \"sewing_machine\"),\n",
    "    (\"n04192698\", \"shield\"),\n",
    "    (\"n04200800\", \"shoe_shop\"),\n",
    "    (\"n04201297\", \"shoji\"),\n",
    "    (\"n04204238\", \"shopping_basket\"),\n",
    "    (\"n04204347\", \"shopping_cart\"),\n",
    "    (\"n04208210\", \"shovel\"),\n",
    "    (\"n04209133\", \"shower_cap\"),\n",
    "    (\"n04209239\", \"shower_curtain\"),\n",
    "    (\"n04228054\", \"ski\"),\n",
    "    (\"n04229816\", \"ski_mask\"),\n",
    "    (\"n04235860\", \"sleeping_bag\"),\n",
    "    (\"n04238763\", \"slide_rule\"),\n",
    "    (\"n04239074\", \"sliding_door\"),\n",
    "    (\"n04243546\", \"slot\"),\n",
    "    (\"n04251144\", \"snorkel\"),\n",
    "    (\"n04252077\", \"snowmobile\"),\n",
    "    (\"n04252225\", \"snowplow\"),\n",
    "    (\"n04254120\", \"soap_dispenser\"),\n",
    "    (\"n04254680\", \"soccer_ball\"),\n",
    "    (\"n04254777\", \"sock\"),\n",
    "    (\"n04258138\", \"solar_dish\"),\n",
    "    (\"n04259630\", \"sombrero\"),\n",
    "    (\"n04263257\", \"soup_bowl\"),\n",
    "    (\"n04264628\", \"space_bar\"),\n",
    "    (\"n04265275\", \"space_heater\"),\n",
    "    (\"n04266014\", \"space_shuttle\"),\n",
    "    (\"n04270147\", \"spatula\"),\n",
    "    (\"n04273569\", \"speedboat\"),\n",
    "    (\"n04275548\", \"spider_web\"),\n",
    "    (\"n04277352\", \"spindle\"),\n",
    "    (\"n04285008\", \"sports_car\"),\n",
    "    (\"n04286575\", \"spotlight\"),\n",
    "    (\"n04296562\", \"stage\"),\n",
    "    (\"n04310018\", \"steam_locomotive\"),\n",
    "    (\"n04311004\", \"steel_arch_bridge\"),\n",
    "    (\"n04311174\", \"steel_drum\"),\n",
    "    (\"n04317175\", \"stethoscope\"),\n",
    "    (\"n04325704\", \"stole\"),\n",
    "    (\"n04326547\", \"stone_wall\"),\n",
    "    (\"n04328186\", \"stopwatch\"),\n",
    "    (\"n04330267\", \"stove\"),\n",
    "    (\"n04332243\", \"strainer\"),\n",
    "    (\"n04335435\", \"streetcar\"),\n",
    "    (\"n04336792\", \"stretcher\"),\n",
    "    (\"n04344873\", \"studio_couch\"),\n",
    "    (\"n04346328\", \"stupa\"),\n",
    "    (\"n04347754\", \"submarine\"),\n",
    "    (\"n04350905\", \"suit\"),\n",
    "    (\"n04355338\", \"sundial\"),\n",
    "    (\"n04355933\", \"sunglass\"),\n",
    "    (\"n04356056\", \"sunglasses\"),\n",
    "    (\"n04357314\", \"sunscreen\"),\n",
    "    (\"n04366367\", \"suspension_bridge\"),\n",
    "    (\"n04367480\", \"swab\"),\n",
    "    (\"n04370456\", \"sweatshirt\"),\n",
    "    (\"n04371430\", \"swimming_trunks\"),\n",
    "    (\"n04371774\", \"swing\"),\n",
    "    (\"n04372370\", \"switch\"),\n",
    "    (\"n04376876\", \"syringe\"),\n",
    "    (\"n04380533\", \"table_lamp\"),\n",
    "    (\"n04389033\", \"tank\"),\n",
    "    (\"n04392985\", \"tape_player\"),\n",
    "    (\"n04398044\", \"teapot\"),\n",
    "    (\"n04399382\", \"teddy\"),\n",
    "    (\"n04404412\", \"television\"),\n",
    "    (\"n04409515\", \"tennis_ball\"),\n",
    "    (\"n04417672\", \"thatch\"),\n",
    "    (\"n04418357\", \"theater_curtain\"),\n",
    "    (\"n04423845\", \"thimble\"),\n",
    "    (\"n04428191\", \"thresher\"),\n",
    "    (\"n04429376\", \"throne\"),\n",
    "    (\"n04435653\", \"tile_roof\"),\n",
    "    (\"n04442312\", \"toaster\"),\n",
    "    (\"n04443257\", \"tobacco_shop\"),\n",
    "    (\"n04447861\", \"toilet_seat\"),\n",
    "    (\"n04456115\", \"torch\"),\n",
    "    (\"n04458633\", \"totem_pole\"),\n",
    "    (\"n04461696\", \"tow_truck\"),\n",
    "    (\"n04462240\", \"toyshop\"),\n",
    "    (\"n04465501\", \"tractor\"),\n",
    "    (\"n04467665\", \"trailer_truck\"),\n",
    "    (\"n04476259\", \"tray\"),\n",
    "    (\"n04479046\", \"trench_coat\"),\n",
    "    (\"n04482393\", \"tricycle\"),\n",
    "    (\"n04483307\", \"trimaran\"),\n",
    "    (\"n04485082\", \"tripod\"),\n",
    "    (\"n04486054\", \"triumphal_arch\"),\n",
    "    (\"n04487081\", \"trolleybus\"),\n",
    "    (\"n04487394\", \"trombone\"),\n",
    "    (\"n04493381\", \"tub\"),\n",
    "    (\"n04501370\", \"turnstile\"),\n",
    "    (\"n04505470\", \"typewriter_keyboard\"),\n",
    "    (\"n04507155\", \"umbrella\"),\n",
    "    (\"n04509417\", \"unicycle\"),\n",
    "    (\"n04515003\", \"upright\"),\n",
    "    (\"n04517823\", \"vacuum\"),\n",
    "    (\"n04522168\", \"vase\"),\n",
    "    (\"n04523525\", \"vault\"),\n",
    "    (\"n04525038\", \"velvet\"),\n",
    "    (\"n04525305\", \"vending_machine\"),\n",
    "    (\"n04532106\", \"vestment\"),\n",
    "    (\"n04532670\", \"viaduct\"),\n",
    "    (\"n04536866\", \"violin\"),\n",
    "    (\"n04540053\", \"volleyball\"),\n",
    "    (\"n04542943\", \"waffle_iron\"),\n",
    "    (\"n04548280\", \"wall_clock\"),\n",
    "    (\"n04548362\", \"wallet\"),\n",
    "    (\"n04550184\", \"wardrobe\"),\n",
    "    (\"n04552348\", \"warplane\"),\n",
    "    (\"n04553703\", \"washbasin\"),\n",
    "    (\"n04554684\", \"washer\"),\n",
    "    (\"n04557648\", \"water_bottle\"),\n",
    "    (\"n04560804\", \"water_jug\"),\n",
    "    (\"n04562935\", \"water_tower\"),\n",
    "    (\"n04579145\", \"whiskey_jug\"),\n",
    "    (\"n04579432\", \"whistle\"),\n",
    "    (\"n04584207\", \"wig\"),\n",
    "    (\"n04589890\", \"window_screen\"),\n",
    "    (\"n04590129\", \"window_shade\"),\n",
    "    (\"n04591157\", \"Windsor_tie\"),\n",
    "    (\"n04591713\", \"wine_bottle\"),\n",
    "    (\"n04592741\", \"wing\"),\n",
    "    (\"n04596742\", \"wok\"),\n",
    "    (\"n04597913\", \"wooden_spoon\"),\n",
    "    (\"n04599235\", \"wool\"),\n",
    "    (\"n04604644\", \"worm_fence\"),\n",
    "    (\"n04606251\", \"wreck\"),\n",
    "    (\"n04612504\", \"yawl\"),\n",
    "    (\"n04613696\", \"yurt\"),\n",
    "    (\"n06359193\", \"web_site\"),\n",
    "    (\"n06596364\", \"comic_book\"),\n",
    "    (\"n06785654\", \"crossword_puzzle\"),\n",
    "    (\"n06794110\", \"street_sign\"),\n",
    "    (\"n06874185\", \"traffic_light\"),\n",
    "    (\"n07248320\", \"book_jacket\"),\n",
    "    (\"n07565083\", \"menu\"),\n",
    "    (\"n07579787\", \"plate\"),\n",
    "    (\"n07583066\", \"guacamole\"),\n",
    "    (\"n07584110\", \"consomme\"),\n",
    "    (\"n07590611\", \"hot_pot\"),\n",
    "    (\"n07613480\", \"trifle\"),\n",
    "    (\"n07614500\", \"ice_cream\"),\n",
    "    (\"n07615774\", \"ice_lolly\"),\n",
    "    (\"n07684084\", \"French_loaf\"),\n",
    "    (\"n07693725\", \"bagel\"),\n",
    "    (\"n07695742\", \"pretzel\"),\n",
    "    (\"n07697313\", \"cheeseburger\"),\n",
    "    (\"n07697537\", \"hotdog\"),\n",
    "    (\"n07711569\", \"mashed_potato\"),\n",
    "    (\"n07714571\", \"head_cabbage\"),\n",
    "    (\"n07714990\", \"broccoli\"),\n",
    "    (\"n07715103\", \"cauliflower\"),\n",
    "    (\"n07716358\", \"zucchini\"),\n",
    "    (\"n07716906\", \"spaghetti_squash\"),\n",
    "    (\"n07717410\", \"acorn_squash\"),\n",
    "    (\"n07717556\", \"butternut_squash\"),\n",
    "    (\"n07718472\", \"cucumber\"),\n",
    "    (\"n07718747\", \"artichoke\"),\n",
    "    (\"n07720875\", \"bell_pepper\"),\n",
    "    (\"n07730033\", \"cardoon\"),\n",
    "    (\"n07734744\", \"mushroom\"),\n",
    "    (\"n07742313\", \"Granny_Smith\"),\n",
    "    (\"n07745940\", \"strawberry\"),\n",
    "    (\"n07747607\", \"orange\"),\n",
    "    (\"n07749582\", \"lemon\"),\n",
    "    (\"n07753113\", \"fig\"),\n",
    "    (\"n07753275\", \"pineapple\"),\n",
    "    (\"n07753592\", \"banana\"),\n",
    "    (\"n07754684\", \"jackfruit\"),\n",
    "    (\"n07760859\", \"custard_apple\"),\n",
    "    (\"n07768694\", \"pomegranate\"),\n",
    "    (\"n07802026\", \"hay\"),\n",
    "    (\"n07831146\", \"carbonara\"),\n",
    "    (\"n07836838\", \"chocolate_sauce\"),\n",
    "    (\"n07860988\", \"dough\"),\n",
    "    (\"n07871810\", \"meat_loaf\"),\n",
    "    (\"n07873807\", \"pizza\"),\n",
    "    (\"n07875152\", \"potpie\"),\n",
    "    (\"n07880968\", \"burrito\"),\n",
    "    (\"n07892512\", \"red_wine\"),\n",
    "    (\"n07920052\", \"espresso\"),\n",
    "    (\"n07930864\", \"cup\"),\n",
    "    (\"n07932039\", \"eggnog\"),\n",
    "    (\"n09193705\", \"alp\"),\n",
    "    (\"n09229709\", \"bubble\"),\n",
    "    (\"n09246464\", \"cliff\"),\n",
    "    (\"n09256479\", \"coral_reef\"),\n",
    "    (\"n09288635\", \"geyser\"),\n",
    "    (\"n09332890\", \"lakeside\"),\n",
    "    (\"n09399592\", \"promontory\"),\n",
    "    (\"n09421951\", \"sandbar\"),\n",
    "    (\"n09428293\", \"seashore\"),\n",
    "    (\"n09468604\", \"valley\"),\n",
    "    (\"n09472597\", \"volcano\"),\n",
    "    (\"n09835506\", \"ballplayer\"),\n",
    "    (\"n10148035\", \"groom\"),\n",
    "    (\"n10565667\", \"scuba_diver\"),\n",
    "    (\"n11879895\", \"rapeseed\"),\n",
    "    (\"n11939491\", \"daisy\"),\n",
    "    (\"n12057211\", \"yellow_lady's_slipper\"),\n",
    "    (\"n12144580\", \"corn\"),\n",
    "    (\"n12267677\", \"acorn\"),\n",
    "    (\"n12620546\", \"hip\"),\n",
    "    (\"n12768682\", \"buckeye\"),\n",
    "    (\"n12985857\", \"coral_fungus\"),\n",
    "    (\"n12998815\", \"agaric\"),\n",
    "    (\"n13037406\", \"gyromitra\"),\n",
    "    (\"n13040303\", \"stinkhorn\"),\n",
    "    (\"n13044778\", \"earthstar\"),\n",
    "    (\"n13052670\", \"hen-of-the-woods\"),\n",
    "    (\"n13054560\", \"bolete\"),\n",
    "    (\"n13133613\", \"ear\"),\n",
    "    (\"n15075141\", \"toilet_tissue\"),\n",
    "]\n",
    "classes_human_readable = {v0: v1 for (v0, v1) in classes}\n",
    "classes_id = {v0: int(k) for k, (v0, _) in enumerate(classes)}\n",
    "\n",
    "df = df.with_column(\n",
    "    \"class_human_readable\",\n",
    "    df[\"object\"]\n",
    "    .list.get(0)\n",
    "    .struct.get(\"name\")\n",
    "    .apply(lambda name: classes_human_readable[name], return_dtype=daft.DataType.string()),\n",
    ")\n",
    "df = df.with_column(\n",
    "    \"class_id\",\n",
    "    df[\"object\"]\n",
    "    .list.get(0)\n",
    "    .struct.get(\"name\")\n",
    "    .apply(lambda name: classes_id[name], return_dtype=daft.DataType.int64()),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "947a0175-151b-4929-a733-3840276041c4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table class=\"dataframe\">\n",
       "<thead><tr><th style=\"text-wrap: nowrap; max-width:192px; overflow:auto; text-align:left\">image<br />Image[MIXED]</th><th style=\"text-wrap: nowrap; max-width:192px; overflow:auto; text-align:left\">arr<br />FixedShapeTensor(UInt8, [256, 256, 3])</th><th style=\"text-wrap: nowrap; max-width:192px; overflow:auto; text-align:left\">class_human_readable<br />Utf8</th><th style=\"text-wrap: nowrap; max-width:192px; overflow:auto; text-align:left\">class_id<br />Int64</th></tr></thead>\n",
       "<tbody>\n",
       "<tr><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\"><img style=\"max-height:128px;width:auto\" src=\"data:image/png;base64, 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\" alt=\"<Image>\" /></div></td><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\">&lt;FixedShapeTensor&gt;</div></td><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\">sea_snake</div></td><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\">65</div></td></tr>\n",
       "<tr><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\"><img style=\"max-height:128px;width:auto\" src=\"data:image/png;base64, /9j/4AAQSkZJRgABAgAAAQABAAD/wAARCACAAIADAREAAhEBAxEB/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDvC1USNL0CDfTAUGgByru70ASqgFAEijFICQE0AOyaQBk0AJuoEGc9AaAHLGx7UgHi3zSuBKtvSuUTJDt7VLYHMtKtb2ERGdaLCuKJlPenYY/zBjPWgByzjP3TRYRMJxSGPFwKLAPE49aQDhNnvQBIsgPvSAlBU9qQDwwHpQId5npSAPOx3osAfagO9KwxRfKOppWC5yBlGPvV0EjDMvrRYVyNr+CKZYmcb26KASadh3G3epi3CKqMZX+6uOcetCQHOm61SDWhPl2QnlQcgr3qtLCNV/ED3Ilht8q4Hynqc0uUdyXw9FfXCM327zZF+/E+enbBpSaGkaUEWorIRczoseCdwXpUuwWLEOo2wyokaTZ8u7+8aVhlk3aRyKrNtLcgdwPekIshy33ZKAMm/m1Les1nMjpEcNEP4/XntTVhAusXPlqZLaWIkclhlVP4U7IRNBqYnkaJt4kXr3H4UmgIpdSYzCKCN5Gzz2xT5QKd5q8wyLZN2DgljQl3AwL6S/hl322o28p2q/2fZsYL7du1JSsXZMqjXZ4mKPIhuG+7FwQR/eBHUVaaZLViZbiSxEt3ckec+COM8egqtxbFKG+uL3Uy6gD5SPvdBTasgRLqF3cRJ5UeYoVOCSMbqSAdprLHGJQVAGdrEc0mUbMGsyy2Ei25+zlDgMF5I96mwEWoalJeW/kicLHxuOSTjpkmmgKcN99jm22w3hRgMTncf73t3osBWGpObpbmV2Yb9rJ3FFhHXf2kJUAgkXcVGABkjNQMhhAQCS7gcyD7rqOX+uKBDriKZ5451U7AeY+uVoA17aHy4wQF47kdB6VIDpSqSLtj5J+8oH60AQSPDIuwW/BON23vQB55fLBofiC3S8lBicP85GflJPPrwT+lBpucr4lvPJ1gW7RnFsf3UsLkFlOCDk5/Ci4JG/8A2irWUV1ITcWOBtZjlt3dX9CKtTaRLibOkMkGstBKkSoYPNRghBPPHXoPxo5mwsP1i40uzuoZNUi3GUgKUlLCM9884x06UczQWNe70VL6BBbFoxtyrJgqcihMLFafS7yCzFrbWu/C4Llhk07iI2017fT1M9qykth/YUXCxRv7my0+1HlKhcjbtB+6D3pSlZXZUY8zsZ7T2+zEJwCOM9qa11Jas7GjYzKZ7dWkCMBjdngn0NJgdNBdvJ8hZdwPPzcfhSAjuBO1yrRzFRgjZnrQIuiQtAV2ZUD5hupASbYpFTJwFORikA+5nlzH5YY+vHB/GkM5TUvAJ1i380X7rcKMYZhIMj/a64p2KTMK1+HtxBDdvrEqQFBiGfzAQx9CD2NKw79izp2jW83hSR7OYXNwZC0wwBhQeQRyM8cH8qYnudFFY3Fnpzb7NL+y2BgXceZtwDtHsCOmfpTAz9QXwpqeiiWQNAu0lFweGBPHHBOaHYepj+GPEl1Yabe5EcnlsNqO/Qd+PyqIsucbWsVn+JGpvOFitbf9RkVdzOxpQfE2Botl3ZSiTo2wjFFx2M/Vb/RdYtZLm1hkS9cqNgzj3JGMfkaU37tioe7K5QW1nWPenOOi98f40oVElZhON3chN1erA8s8EqruGGKmt9OhjqMhvna8jlO4Z9H5otoBdm1e7ubzzEdw6DAUt90DvSsBoReKrvdEZXUAYBb196TiBqPr/l3r+buSIY8sg8H8RU2Aq3+vRXMsk3mypEgG2POM/lTSA2rHT7nS4f7RSYgyjAhumIlY9l3A4zWfmX5G8NSkFv5esWBEcrbQqrvGPVhzT9RehLptro9vLKdPthbtKoLMsZUMPT0/CmrA7hrVslzZSQRyeVd+W3kEsVAcjAOR70wPDjb6lYWsdrdK8jtOwaYcqGzzz3PBrDnUm/I35bJEskH2dGkhDNIOdo/i5oEQSaLrN6kVzp+lylfMIkGzBHSriyZI6Kz+HuqyXkf2nYkTjDsrAkenFXYm5cu/DKeHfKUz+ZLMpyOvSsplxIJSYoSV3Eqp6dajdlGbL4sdEn0/DBJAqgycqeDk+xraK0M3uZ2m2T6jqS27S7Wc43dvrVKTRLSL13po06N4nuNl191ww4H0qucnlKkVjd30qwWdtJK0YG4Ad6tSQmjvvDfg4WcYutRAkuGAKxE5Vf8AE1DkI60WkDAKIUA7gqDUgef+KPFCmO3i08wiNXzG4OSuOnykfKeetRJ9jaKOh8H6+2sae9vPcyGaMfNIxwTn0NOLuTNWJQR4bluNQa4MtuVx5RfLOxbk5xzT2DfQdc61NrQfTUjubZ5VDRzRKCFB/vGi99AtY5bUrG6s9JRLzUVmIl3CADBGQfmOeeahqyLTuzN01lTVLWVzhUlUknsM0kUeqm5sQwJnjczqDGFG1c98MOM+2a1MyKKzDCRx56Sbs/M52nntQI4jW9J1Ea5PqNxPIbRY1WKFuxPX/PvUT2Li9Sbw9D5uu2uRn5uRWcdynsdRrXg7R9Uu4ppLVFcEq5T5TnHB471sZaljTPB2k6bOZootz5JG/kDPYelArkeu+DNO1lGZ12XBXCyg8g/1oFc5jR/BWs+HdRhvVkjljB2Sop52Hv8A1oG7M7Rh82G27vY0yBVAwccEUAeLarol5px8i7tfLmc7gd+75R9KzasbrU6Xw14ae0e3lvZZIYroApFGGJJznnjA/nVJEtnUX1tp+rus1gIria1fEsQO04Hb8+ffFMlaFX7NdaJLAdPjjnF25DxycHHXg+2TT2He+5yfjq+t4NTBt13zBQkhY8DHGB3qJlRZzdvrh85MwqckA5ORioKueg6roeowWtrd28MHlKCZLdWIC+hBHPIrWxCZb8N+K5obARXMbzCOTYVWNg49AM8E80JjZpeMoHufDc97ZPIjrAzA4445wR9RQ9RXsec/CiW91HXbu6urqR4oIj8pcj5m4GMd+tPlSC7Pcdu2yjIcnaVJLnJI9zQInMJVidxJPRe1BJHFA0xzNAsZXBUq2T+PFIBhLLcuot22uThg+Rn3Hb8KQGH/AGbOt3cvFBKGf5lKg7CPx6GhALBpWrlUDqB3JZuf0p3JNmWyilYGSNWI6EqDimaCm2TI7gdBigkatpBG7SLEqu33mAwT9aAFFtD8x2feOT70xnlPxS0/T7B7FbS3jimlLvJsH3hxjP61nMpGJ4u0FNG0vQHWPEktufNbHVs7v/ZqTVkho9osLeGXTLRpIlZvJT7w5+7Wi2JLK2Np5bJ9li2MQSNg5I6UALf2yXem3Ns3CSxMhx7igDx34JXEdvrWracwBdlDK3+6SD/OqYHtkiBomXA5BqRD4m3xqwHUZoEx/NIQ4UAPoABn0pAU8etMsMCmIYwzQIbjFAzx7x8J9T+INpYQgMQI4wPqc/1rOW5Udjc+LkSReGrGdgMw3AXd6Aqf8KqS0BHVeHdVtJvC2mzm4TDW6Zyw6gYP8qpbAy/pms2WqQyTWjsyI5Qsylckeme1AhNU1yx0mye4uJRtXoq8kn0xQNK54N4Zu77RvHcupQ2bpHNOyrESMlWbp+VHNcbjY+hEvy+NsTcjv2/KkQWbVj5KhsArkHFAiwCM45oAcOtIQ7FABt9qAKJJNMsb060CEY4FMDLfWbcb/vllYrg8UAee38F9efES31u1sg0USYxycsAQDRYaZs63ot54osvs+qSeVbk5KDnnsaYhdN8OWOjWSQWdt5uwYBflm9ee1IdzYtLGZo/9U0QPYtmgLhdeFbPVIvLumkK7t2F+Xn60AWLHwfpVnIkkdsrSJ913+Yj86BXN+OAoOOtIB8cBBc+pzQImVTigB4joAkCAetIB4FIDFeU5wnzfyqihpSVxy+PoKAI2t2xy7kfWmIhGnxrJuUcnrkUAT/Z1HbB+lACi0jJ+bn60APSBRgbADQBMkeOMcUASEccUAPj4680CJUIPakBKoBGaAHeXQAnlkH5T+BoAcowOc596QEgBpAZCqo7YplAybaYCYzQITZkZOKYChc+lAh2wEdSKAHKo7A5+tAD9o6CgYEYHTHvQIdgY7mgRJGMDtg0gJcY4NICRcj6dqBkgXPXrQApUd6QB5foaBmVjnI6Uyhpx+tAhMA8ZpiHGMYwOfwoAYyFSpXO0nmmIeqFQwIyR0JoAeqkZGevegB4QkD1oAGG3FAAAWGOaQEqL09qBEmDuzjg0gJkHAoGLznigZIuDwaQDth7dKQzH25P6GmUDDjp+FMRGEO4/nimIkUEAigQ4KRkdqAHbT9TTAUrjA796AHgbR04pCGOPnVaAHfKD70APXgdMUgHA+1AEgODQA/HpQMeB60hky4wKQz//2Q==\" alt=\"<Image>\" /></div></td><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\">&lt;FixedShapeTensor&gt;</div></td><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\">alp</div></td><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\">970</div></td></tr>\n",
       "<tr><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\"><img style=\"max-height:128px;width:auto\" src=\"data:image/png;base64, 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\" alt=\"<Image>\" /></div></td><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\">&lt;FixedShapeTensor&gt;</div></td><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\">Shetland_sheepdog</div></td><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\">230</div></td></tr>\n",
       "<tr><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\"><img style=\"max-height:128px;width:auto\" src=\"data:image/png;base64, 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\" alt=\"<Image>\" /></div></td><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\">&lt;FixedShapeTensor&gt;</div></td><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\">soup_bowl</div></td><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\">809</div></td></tr>\n",
       "</tbody>\n",
       "</table>\n",
       "<small>(Showing first 4 rows)</small>\n",
       "</div>"
      ],
      "text/plain": [
       "╭──────────────┬────────────────────────────────────────┬──────────────────────┬──────────╮\n",
       "│ image        ┆ arr                                    ┆ class_human_readable ┆ class_id │\n",
       "│ ---          ┆ ---                                    ┆ ---                  ┆ ---      │\n",
       "│ Image[MIXED] ┆ FixedShapeTensor(UInt8, [256, 256, 3]) ┆ Utf8                 ┆ Int64    │\n",
       "╞══════════════╪════════════════════════════════════════╪══════════════════════╪══════════╡\n",
       "│ <Image>      ┆ <FixedShapeTensor>                     ┆ sea_snake            ┆ 65       │\n",
       "├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤\n",
       "│ <Image>      ┆ <FixedShapeTensor>                     ┆ alp                  ┆ 970      │\n",
       "├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤\n",
       "│ <Image>      ┆ <FixedShapeTensor>                     ┆ Shetland_sheepdog    ┆ 230      │\n",
       "├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤\n",
       "│ <Image>      ┆ <FixedShapeTensor>                     ┆ soup_bowl            ┆ 809      │\n",
       "╰──────────────┴────────────────────────────────────────┴──────────────────────┴──────────╯\n",
       "\n",
       "(Showing first 4 rows)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df = df.select(\"image\", \"arr\", \"class_human_readable\", \"class_id\")\n",
    "df.show(4)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "be1af108-1b02-47d4-b849-ac3ebc80b7bf",
   "metadata": {},
   "source": [
    "## Convert to Ray Dataset\n",
    "\n",
    "Now we can convert our dataframe to a Ray Dataset, which is a great API and framework for ingesting data into ML training"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "ef14cef1-6029-4890-87fd-d0f232b01730",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "ScanWithTask-LocalLimit-LocalLimit-Project-Project-Filter-Project [Stage:3]:   0%|          | 0/1 [00:00<?, ?i…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ray_dataset = (\n",
    "    df\n",
    "    # Filter out images with channel dimensions != 3\n",
    "    .where(df[\"image\"].apply(lambda arr: arr.shape[2] == 3, return_dtype=daft.DataType.bool()))\n",
    "    # Select only two columns, \"arr\" and \"class_id\"\n",
    "    .select(\"arr\", \"class_id\")\n",
    "    .to_ray_dataset()\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cef3f0ba-0e96-4082-9df3-0630622e1288",
   "metadata": {},
   "source": [
    "## Now it's just PyTorch!\n",
    "\n",
    "And from here on, we can perform training in Pytorch as usual!\n",
    "\n",
    "We will convert our Ray Dataset into a dataloader which returns data with a batch size of 8, and run a single loop across this dataloader for 1 epoch to perform training of a ResNet 18 model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "e9e2d639-3bea-4594-9ee8-28fb0bbf3270",
   "metadata": {},
   "outputs": [],
   "source": [
    "torch_dataloader = ray_dataset.iter_torch_batches(batch_size=8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "9e61b7c7-ee87-4bab-bd86-47d333ae550b",
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torchvision.models as models\n",
    "from torch import nn\n",
    "\n",
    "model = models.__dict__[\"resnet18\"](weights=models.ResNet18_Weights.DEFAULT)\n",
    "criterion = nn.CrossEntropyLoss()\n",
    "optimizer = torch.optim.SGD(\n",
    "    model.parameters(),\n",
    "    0.1,\n",
    "    momentum=0.9,\n",
    "    weight_decay=1e-4,\n",
    ")\n",
    "\n",
    "# Train for 1 epoch across all the data in the dataloader\n",
    "for i, data in enumerate(torch_dataloader):\n",
    "    images, labels = data[\"arr\"].permute(0, 3, 1, 2).float(), data[\"class_id\"]\n",
    "\n",
    "    # compute output\n",
    "    output = model(images)\n",
    "    loss = criterion(output, labels)\n",
    "\n",
    "    # compute gradient and do SGD step\n",
    "    optimizer.zero_grad()\n",
    "    loss.backward()\n",
    "    optimizer.step()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7aec0a39-bbe5-469c-8cba-6ff014962664",
   "metadata": {},
   "source": [
    "And there we have it! Feel free to save your trained model now, and try:\n",
    "\n",
    "1. Run this tutorial on a larger machine with GPUs for model training\n",
    "2. Run this tutorial with a large remote Ray cluster for large-scale data preprocessing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "c46b511c-8336-44d4-a157-d1a42742e701",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table class=\"dataframe\">\n",
       "<thead><tr><th style=\"text-wrap: nowrap; max-width:192px; overflow:auto; text-align:left\">image<br />Image[MIXED]</th><th style=\"text-wrap: nowrap; max-width:192px; overflow:auto; text-align:left\">arr<br />FixedShapeTensor(UInt8, [256, 256, 3])</th><th style=\"text-wrap: nowrap; max-width:192px; overflow:auto; text-align:left\">class_human_readable<br />Utf8</th><th style=\"text-wrap: nowrap; max-width:192px; overflow:auto; text-align:left\">class_id<br />Int64</th><th style=\"text-wrap: nowrap; max-width:192px; overflow:auto; text-align:left\">model_predictions<br />Python</th></tr></thead>\n",
       "<tbody>\n",
       "<tr><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\"><img style=\"max-height:128px;width:auto\" src=\"data:image/png;base64, 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\" alt=\"<Image>\" /></div></td><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\">&lt;FixedShapeTensor&gt;</div></td><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\">sea_snake</div></td><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\">65</div></td><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\">tensor([[-2.7218e-01, -3.9199e-01, -6.0069e-01, -1.3214e+00, -7.2138e-01,<br />         -2.2742e+00, -9.6090e-01,  1.5565e-01,  2.1052e-03, -8.7728e-01,<br />         -8.4119e-01, -7.8948e-01, -4.2467e-01, -1.1369e+00, -9.2177e-01,<br />         -7.4507e-01, -6.8149e-01, -2.7634e-01, -7.3824e-01, -8.3110e-01,<br />         -1.4968e+00,  7.0988e+00,  2.4761e+00, -2.3017e+01, -1.1977e+00,<br />         -1.1058e+00, -1.1112e+00, -1.0467e+00,  1.2516e+01,  8.9705e+00,<br />         -9.9994e-01, -9.8104e-01, -1.7171e+01, -1.3706e+00, -1.9668e+00,<br />         -6.7701e-01, -2.1457e-01, -6.8726e-01, -8.5024e-01, -2.1465e-01,<br />         -7.7041e-01, -1.0962e+00, -1.0028e+00, -3.2649e-01, -8.0604e-01,<br />         -6.8337e-01,  6.4011e+00, -6.6844e-01, -1.2203e+00, -2.2910e+00,<br />          8.5518e+00,  1.6674e-01, -4.6913e+00, -2.8240e+00, -1.2394e+00,<br />         -1.1207e+01, -4.1234e-01, -1.6717e+01, -2.7463e-01, -1.0010e+00,<br />         -2.3535e+00, -4.7213e-01, -3.9813e+00, -4.1223e-01, -8.9204e-01,<br />          4.7543e+00, -1.5626e+00, -1.5489e+00, -2.1282e+00, -1.1224e+00,<br />         -1.4203e+00, -2.4671e-01, -1.1183e+00, -2.6329e-01,  5.6322e+00,<br />         -1.1023e+00, -2.2263e-01, -6.0349e-01, -2.0382e-01, -2.0846e-01,<br />          8.0481e+00, -1.4509e+00, -1.7574e-01, -3.3088e-01, -5.7435e-01,<br />         -4.0449e-01, -6.2366e-03, -2.1108e-01, -1.4353e-01, -6.2005e-01,<br />         -9.4666e-01, -7.8964e-01,  6.5133e+00, -5.3910e-01,  6.0052e-02,<br />         -1.4843e+00, -8.4534e-01, -1.0062e-01, -1.1493e+00, -3.7695e-01,<br />         -1.0982e+00,  7.8310e+00, -9.2716e-01, -3.3702e-01, -6.0828e-01,<br />         -6.8946e-01, -7.3448e-01,  2.6687e+00,  5.6855e+00, -1.3891e+01,<br />         -1.8712e+00, -1.3486e+00,  6.0427e-01, -7.6204e-02, -1.3723e+00,<br />         -1.0717e+00, -1.0682e+00, -5.0470e-01,  1.3474e-01, -5.8448e-01,<br />         -9.3026e-01, -4.2922e-01,  5.5625e+00, -1.5869e-01,  5.7220e-01,<br />         -3.7398e-01, -6.7703e-02, -1.2750e+00, -8.9673e-01,  1.4321e+00,<br />         -1.3602e+00, -1.3918e+00, -1.0868e+00, -1.0081e+00, -7.7643e-01,<br />         -9.8061e-01, -8.5948e-01, -1.0274e+00, -1.0425e+00, -1.1698e+00,<br />         -1.3543e+00, -1.2258e+00,  5.2071e+00, -1.4204e+00, -5.8002e-01,<br />         -5.6669e-01, -8.6916e-01,  2.5076e+00, -1.0873e+00,  1.0240e+01,<br />          5.7582e+00,  1.0144e+00, -1.0974e+00, -6.9455e-01, -1.8479e-01,<br />          4.6612e-02, -7.4393e-01, -3.3550e+00,  4.6889e-03,  2.2762e+01,<br />          1.0435e+01,  3.7995e-01, -6.1795e-02,  1.9692e-01,  8.0856e-02,<br />         -2.6889e-01, -3.3845e-01, -6.3070e+00,  1.7832e-01, -9.8300e-01,<br />         -4.8971e-01,  3.9528e-01,  1.7481e-01, -2.4623e+01, -3.3910e-02,<br />          8.1921e+00, -1.3139e-01, -4.1811e-01,  1.8810e-01,  1.3478e-01,<br />          1.5791e-01, -3.5686e-01,  6.8664e-02,  5.9554e+00,  2.1844e-01,<br />          2.7276e-01,  2.8488e-01, -1.1633e-01, -1.2988e-01,  4.6866e-02,<br />         -6.6081e-01,  8.1372e-03,  3.4176e-02,  3.3784e-02, -6.6022e-01,<br />          5.1170e-01, -7.6427e-02, -2.3861e-01,  3.2628e+00,  3.3807e-01,<br />         -1.3836e-01,  8.5680e+00,  1.4327e-01,  1.6371e-01, -1.8617e-01,<br />          5.0539e-02, -9.6662e-02,  2.0577e-01,  6.3415e-01,  3.9985e-02,<br />         -2.3564e-01,  7.4005e-02,  1.6075e-01, -2.8846e-01, -2.0495e-01,<br />         -1.6295e-01, -2.6908e-01, -3.4792e-02, -7.2707e-01,  2.2754e-01,<br />         -1.9363e-01, -2.7528e-01, -1.5432e-01,  2.0404e-01, -1.6314e-02,<br />          2.2121e-01, -1.6963e-01,  5.6767e+00, -6.0694e-01, -4.4068e-01,<br />          8.9364e+00, -4.6164e+00, -3.3140e-01, -3.0048e-01,  3.9635e-01,<br />          4.5472e-01,  2.9910e-01,  2.3377e-01,  2.8540e-01, -3.0505e-01,<br />          2.9635e-01, -1.9184e-01,  1.8154e-01,  7.9804e-02, -4.2487e-01,<br />          3.2846e-01,  1.3669e-01, -1.3106e-01,  4.3115e-01,  6.4543e-02,<br />          2.6967e-01,  1.8888e-01, -8.2692e-01,  2.5494e-01,  4.7320e-01,<br />         -7.3103e-01,  1.0469e+01, -3.2224e-02, -3.8894e-01,  9.1315e+00,<br />         -4.4979e-01, -8.5652e-01, -2.8508e-01, -2.5630e-01,  3.2376e-01,<br />          2.8337e-01,  6.2566e-02,  2.5271e-02, -6.4055e-02, -5.2655e-01,<br />          9.8856e+00, -9.3613e-01, -5.6440e-01, -1.4580e-01, -1.0994e+00,<br />          8.0291e+00, -1.0691e+00, -7.1980e-01, -1.0271e+00, -6.7273e-01,<br />         -4.6598e-01,  1.1383e-01, -1.4973e+00, -4.3521e-01,  7.3579e-02,<br />         -7.5883e-02,  9.6552e+00, -4.8396e+00, -9.6121e-01, -1.4415e+00,<br />         -1.8126e+00, -6.1558e+00, -9.1588e-01, -9.7442e-01, -1.2681e+00,<br />         -7.8147e-01, -7.9471e-01, -1.1873e+00, -8.4203e-01, -1.0959e+00,<br />         -1.5060e+00, -8.2959e-01, -6.0841e-01, -3.4820e-01, -1.0868e+00,<br />         -1.3578e+00, -7.5302e-02, -1.0509e+00, -1.4035e+00, -5.7627e-01,<br />         -1.8200e-01,  3.6591e+00, -4.1301e-01, -1.7634e-01,  8.7630e-02,<br />         -5.8917e-01, -8.8327e-01, -1.1651e+00, -1.0661e+00, -6.1558e-01,<br />         -1.2304e+00, -9.2926e-01, -9.6682e-01, -1.2946e+00,  7.7499e+00,<br />         -1.2954e+00, -1.1388e+00, -3.9786e-01, -1.1407e+00, -8.1483e-01,<br />          8.0324e+00, -2.7111e-01,  2.6719e+00,  6.1825e-03, -3.0653e+01,<br />         -1.1672e+00, -1.6488e+00, -1.0722e+00, -6.8668e-01, -6.9518e-01,<br />         -2.1088e-01, -2.3844e-01, -1.0247e+00, -1.1067e+00, -4.3101e-01,<br />          3.9490e-01, -9.0675e-01, -1.3142e+00, -2.2741e-01,  6.6318e+00,<br />         -1.0125e+00, -1.6010e+00,  3.1983e+00, -4.6579e-01, -4.4227e-01,<br />          1.8837e-01,  6.8256e-01, -2.1065e-01,  6.8557e+00,  1.7923e-01,<br />         -8.4758e-01,  5.1670e-03, -1.4428e+00, -8.6775e-02, -4.5402e-01,<br />         -6.2526e-01,  8.0519e+00, -9.4258e-01, -6.6032e-01,  8.3520e+00,<br />          7.9748e+00, -6.1636e+00, -1.3699e+00,  7.9199e+00, -1.5636e+00,<br />         -1.5538e+00, -8.6365e-01, -3.2521e+00, -5.8446e-01, -6.3183e-01,<br />         -6.0908e-01, -5.5044e-01, -4.3848e-01,  1.6095e+01, -5.7093e-01,<br />         -5.1839e-01, -9.4339e-01, -9.8410e-01, -9.7510e-01, -9.1060e-03,<br />         -2.6986e+00,  8.7224e-02,  7.3503e+00, -1.5795e+00,  7.1197e+00,<br />         -1.7444e-01, -1.0286e+00, -1.2707e+00,  6.9452e+00,  3.3508e-02,<br />         -5.6076e-01,  4.0854e-01,  6.8882e-02, -1.6711e+00, -1.2866e+00,<br />         -4.6440e-01, -3.3918e-01, -4.1093e-01, -5.1589e-01,  6.9805e-01,<br />         -9.2784e-02, -5.3806e-03,  1.1749e+00,  3.2381e-01,  9.3087e-02,<br />         -5.2370e+01, -3.9389e-01, -8.6826e-02, -3.6716e-02, -5.6528e-01,<br />          6.2077e-01,  6.5678e-01, -2.5474e-01, -1.2546e+00,  7.4020e+00,<br />         -1.0467e+00, -4.5434e-02,  8.2333e-01,  8.3208e-01,  2.3128e-03,<br />         -8.2706e-01, -5.0666e+00, -5.4116e-02, -2.3150e-01, -5.9189e-01,<br />          7.7825e-01, -3.4248e-01, -6.9473e-01,  2.8248e-01,  2.3578e-01,<br />          4.9211e-01, -1.4448e-01, -1.7877e-01, -1.0182e+00, -4.5573e-01,<br />          3.7252e-02,  1.7568e-01,  7.3505e-01,  3.7696e-01, -5.2635e-01,<br />         -1.0219e-01,  2.9260e-01,  2.0781e-01, -4.8262e-01, -3.5518e-01,<br />         -1.1886e-02,  1.0787e+00,  8.5548e-01, -3.1228e-01,  3.6009e-01,<br />         -7.9261e-01,  1.3557e+01,  7.2666e-01,  1.4181e+00,  5.8066e-01,<br />         -2.8873e-01, -9.9615e-01,  8.9555e+00, -1.7767e+00,  6.3621e-01,<br />         -1.1300e+00,  1.1247e-01,  1.5563e-01,  8.8448e+00,  6.5351e+00,<br />          1.3532e-02,  7.3117e+00,  1.8166e-01, -2.2641e+01,  1.5273e+01,<br />         -2.4683e-01, -9.5049e-03,  1.1630e-01,  3.0633e+00, -1.1981e+00,<br />         -2.5942e-01,  1.8629e+01,  7.5353e+00,  5.1561e-01,  1.4080e-01,<br />          1.4515e-01,  3.1030e-01,  4.2499e-01, -9.5339e-01,  3.4819e-01,<br />         -1.0911e+00, -5.5979e-01, -5.4063e-01,  7.2251e+00,  7.4376e-01,<br />         -1.2931e+00,  3.6317e-01,  7.8293e-01,  2.1842e-01,  2.6177e-01,<br />          6.3840e-01,  2.7178e-01,  2.2662e-01,  8.2165e-02, -9.4395e-02,<br />         -9.9010e-01, -6.1838e-01,  3.7146e-01,  5.7994e-02,  9.5550e-01,<br />          1.2946e+00, -1.1042e+01,  4.3105e+00,  8.7146e-01,  2.8734e-01,<br />         -6.0668e+00, -3.6015e-02,  5.6721e-01,  8.6468e-01,  3.0424e-01,<br />         -6.8888e-01, -1.5222e-01, -3.8488e-01, -9.8998e-02, -2.3635e-02,<br />          4.8019e-01, -3.3171e-02, -5.5059e-01, -8.8969e-01,  3.8396e-02,<br />         -8.0375e-01, -3.3322e-01, -7.1269e-01, -8.8020e-02,  4.8284e-01,<br />         -1.0943e+00,  9.1922e-01,  4.9380e-01,  3.0667e-01,  8.5801e-02,<br />          4.7345e-01,  4.5078e-01, -1.5427e+00, -1.1097e+00, -1.4702e-01,<br />         -5.4698e-01, -3.7909e-01,  3.7092e-01, -2.5831e-01, -1.3308e+00,<br />         -5.2416e-01,  9.8743e-02,  8.8819e-02,  8.2802e-01,  2.5360e-01,<br />         -3.2341e-01, -4.4850e-01,  4.2854e-01, -5.3071e-02, -2.8175e+00,<br />          9.6548e+00, -1.2190e-01,  4.6243e-01,  2.0567e-01, -1.0811e+00,<br />          6.8205e-01, -2.0924e-01,  5.1765e-01, -4.9734e+00, -3.0300e-01,<br />         -4.1095e-01, -6.7360e-01,  3.2369e-01, -2.3787e-02, -4.4443e-01,<br />         -9.3292e-03, -2.2638e-01,  3.4301e-01,  1.0489e-01,  2.4126e-01,<br />         -2.9834e-01,  1.1082e+01,  1.0232e+00,  5.0191e+00,  6.3104e-01,<br />         -3.5633e-01,  4.0038e+00, -5.5478e-01,  5.4387e-01,  1.5682e-01,<br />          7.6247e+00,  7.6770e-01, -1.3988e-01, -5.5349e-01, -1.6953e-01,<br />          9.5465e-01, -2.2591e-01, -2.3700e-01, -4.8072e-01,  2.5551e-01,<br />         -9.6264e-02,  6.6338e-01, -6.0307e-01,  5.4596e+00, -5.3585e-01,<br />          6.3952e-01,  3.0489e-01, -7.5147e-01,  2.9045e-01, -2.0272e-01,<br />         -6.9456e-02,  6.5666e-01,  2.7208e-01,  1.1204e+00,  3.9470e-01,<br />          3.8175e-01, -1.6587e+00, -1.3396e-01,  1.9864e-01, -7.9700e-02,<br />         -9.1202e-01,  4.2452e-01, -4.5784e-01, -9.0505e-01, -2.5147e+00,<br />         -1.5909e-01, -3.4615e-01,  5.5582e+00,  5.7411e-01, -1.8700e-01,<br />          7.2076e-02,  7.8569e-01, -4.1314e-03,  4.2262e+00,  9.9424e-02,<br />         -1.6063e+00,  6.2787e-01, -2.5430e-01,  9.1142e-01,  1.5559e-01,<br />          3.0832e+00,  2.4105e-01, -2.3489e-01, -4.6815e-01, -1.2299e+00,<br />          4.1385e-01,  6.5344e-03,  3.8777e-01,  5.8309e-01, -1.4908e+00,<br />          2.8903e-01, -7.0837e-01, -5.3410e-01, -3.4958e-03, -2.8071e+00,<br />         -2.0681e-01, -1.0029e+00, -1.2692e-01, -6.9856e-01,  4.4065e+00,<br />         -7.0137e-02,  6.0135e-01,  1.1621e-01, -7.2703e-01, -5.9359e-01,<br />          1.5025e-01, -5.2114e-01, -6.2804e-01,  2.1222e-01, -3.1270e+01,<br />         -1.5322e+00,  1.1399e+00,  1.4421e-01,  6.7192e-01,  5.5183e-02,<br />         -5.6790e-01,  3.0249e-01, -5.6765e-01,  1.3607e-01,  5.9236e-01,<br />         -1.3364e+00,  4.9346e+00, -1.0410e+00, -4.6063e-01, -7.7269e-01,<br />         -4.4073e-01,  5.4013e-01, -8.6504e-01,  4.5763e-01, -1.0415e+00,<br />         -9.1738e-02,  9.6063e-01, -2.8823e-01, -4.2659e-01,  5.7030e-01,<br />         -4.7005e-02, -4.5133e-01, -2.2809e-01,  1.3206e-01,  4.5811e-02,<br />          9.3358e+00, -3.9568e-01, -4.4094e-02,  6.6723e-01, -4.0498e-01,<br />         -2.6842e-01,  2.6176e-02, -1.1839e-01, -3.9041e-01,  7.0255e-04,<br />         -3.3377e-01,  1.9423e-01,  3.8088e+00,  3.5921e+00,  1.5202e-01,<br />          4.9591e+00,  1.2007e-01,  4.8731e-01,  5.7460e-02, -6.8261e-01,<br />         -8.3474e+00, -7.1905e-01,  1.2885e+01,  5.4042e-01, -5.3001e-01,<br />         -1.8281e+00,  1.1641e+00, -6.4115e-01,  1.1523e+00, -1.4470e+00,<br />         -1.7008e-01, -2.1594e-01, -2.9089e-02,  5.8464e-01, -1.4488e-01,<br />          7.1962e-01, -6.4103e-02,  2.5908e-01, -1.0145e-01, -2.4248e-02,<br />         -2.0624e-01, -4.1559e-01,  4.3878e-01, -2.6849e-02,  6.6292e-01,<br />         -1.9844e-01, -3.2533e-01, -1.0234e-01,  9.2657e-02,  4.8087e-01,<br />         -7.2569e-01,  1.0871e+01, -4.4782e+00,  1.1555e+00, -1.8037e-01,<br />         -1.3585e-01,  4.1578e-01,  1.1390e-01,  6.3028e-01,  7.7623e-01,<br />         -1.9664e+00,  1.5135e-01, -3.6405e+00, -3.8648e-01,  6.1547e-01,<br />          1.5643e-01,  9.3263e-02,  8.1692e-01,  6.7228e-02, -7.1655e-02,<br />          1.9427e-01,  3.3246e-01, -1.5778e+01,  6.7203e-01, -8.6169e-01,<br />          9.0010e+00, -8.7306e-01,  7.3237e-01,  3.8963e-01,  7.3310e-01,<br />          4.5097e-02,  1.8724e-01,  9.1519e-01,  7.6903e+00, -3.1040e-01,<br />          2.6296e-01,  3.5329e-01,  7.2229e-01,  1.8164e-01,  1.8765e-01,<br />         -2.9655e+01,  5.6940e-01,  3.4993e-01, -4.9079e-01, -3.6331e-02,<br />         -8.2086e-01,  1.2464e-01, -1.0329e+00, -1.0741e+00,  3.2376e-01,<br />          6.0191e-01,  5.4995e-02, -1.9888e-01,  1.0859e+00, -1.1630e+01,<br />         -3.3229e-01,  4.3768e-01, -3.7276e-01,  7.2431e-01, -8.3915e-01,<br />         -4.2646e-01, -4.7301e-02, -8.3625e-01,  5.7841e-01,  1.3629e-01,<br />         -1.2626e+00, -7.2264e-01,  2.0603e-01,  3.6301e-01,  4.0489e-01,<br />         -7.4101e-01,  1.0360e-01,  5.6793e-01,  1.1387e-01, -5.0085e-01,<br />          5.5292e-01, -2.8517e-01, -5.3055e-01, -8.4060e-01, -8.0749e-02,<br />          1.4585e-01,  1.0964e+00,  9.8573e-01,  1.6353e-01, -5.3257e-01,<br />          8.4816e-01,  6.0900e+00,  5.6142e+00,  3.4809e-01,  5.2744e+00,<br />          8.3104e-01,  1.1439e+01, -6.9536e-01,  1.2885e-01,  5.1153e-01,<br />          3.8695e-01,  7.0928e-01,  3.5301e-01, -5.0566e-01, -4.7296e-01,<br />          4.5524e-01, -1.4350e+00, -2.9241e+00,  9.6179e+00,  6.3856e-01,<br />          6.2121e-02,  8.4120e-01,  4.4685e-01, -6.8144e-02, -4.6556e-01,<br />          2.3636e-01, -5.5843e-01, -1.1836e+00,  8.1906e-01, -4.6677e-01,<br />          6.5789e+00, -1.0363e+00,  7.7462e+00, -7.6452e-01, -1.8418e+00,<br />          1.4656e-01,  1.1439e+00, -5.2971e-01,  1.1212e+01,  7.5197e-01,<br />          4.4209e-01, -3.5320e-01,  4.1087e-01,  8.0785e-01, -2.2465e-01,<br />         -1.2364e-01, -4.1837e-01, -2.5483e+00, -7.6983e-01,  1.4111e-01,<br />         -6.2874e-01, -8.8027e-02,  4.7306e-01,  1.3312e-02, -6.9450e-01,<br />         -1.1118e+00,  7.6371e-01,  4.7137e-01, -3.7205e-01,  1.2002e+00,<br />         -9.6311e-01, -5.4649e-01,  3.2844e-01,  3.1530e-01,  5.2128e-01,<br />          3.1231e-02,  5.0209e+00,  8.2332e-01, -8.3126e-01,  4.4870e-01,<br />          5.0346e-01,  6.7402e-01,  4.2432e-01, -4.3691e-01, -1.3725e+00,<br />         -5.2472e-01,  5.2077e-04,  1.5176e-01, -1.7166e-02, -1.4921e-01,<br />         -2.7750e-01,  6.0583e-01, -6.9361e-01,  3.7252e-02, -6.6764e-01,<br />         -4.8876e+00, -1.0858e+00, -8.7510e-01, -5.6715e-01, -2.4048e+00,<br />         -5.2062e-01, -4.1056e-01, -3.1579e-01, -1.9164e+00, -4.0713e+00,<br />         -7.9799e-01,  9.4610e-02, -2.9357e-01, -3.6255e-01, -6.1240e-01,<br />         -4.8822e-01, -8.6886e-01, -6.7513e-01, -6.2841e-01, -7.8575e-01,<br />         -1.0141e+00, -1.0293e+00,  7.3600e-02, -1.9057e+01,  7.8292e+00,<br />         -5.7524e-01, -8.7335e-01, -8.3840e-01, -2.4755e-01,  3.1148e-01,<br />         -1.3108e+00, -5.7400e-01, -5.6589e-01, -1.4413e-01,  1.3141e+01,<br />         -1.4567e-01, -3.5524e-01, -5.4817e-01, -8.4205e-01, -1.1962e+00,<br />         -2.0332e+00,  2.4699e-01, -2.1461e+00, -1.6782e+00, -4.9797e+00,<br />          6.7784e+00,  5.6267e-01, -3.2829e-01, -1.1577e+00, -1.7021e+00,<br />          2.8842e-01, -1.4424e+00, -1.7387e-01, -1.3089e-01, -8.3507e-01,<br />         -9.2152e-01, -1.7488e-01,  6.3576e-02, -5.1483e-01, -6.1928e-01,<br />         -1.2056e+00, -2.0253e+00,  8.1032e-01, -4.6983e-01, -1.1170e+00,<br />         -3.6558e-01, -1.2480e+00, -9.8161e-01, -1.4049e+00,  7.6402e+00,<br />         -3.6551e-01, -7.8730e-03, -7.3599e-01,  7.3325e-01, -1.2999e-01]],<br />       requires_grad=True)</div></td></tr>\n",
       "<tr><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\"><img style=\"max-height:128px;width:auto\" src=\"data:image/png;base64, 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\" alt=\"<Image>\" /></div></td><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\">&lt;FixedShapeTensor&gt;</div></td><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\">alp</div></td><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\">970</div></td><td><div style=\"text-align:left; max-width:192px; max-height:64px; overflow:auto\">tensor([[-2.9406e-01, -3.9664e-01, -5.8837e-01, -1.4149e+00, -7.2320e-01,<br />         -2.2410e+00, -9.7316e-01,  1.5885e-01, -3.0665e-02, -7.7977e-01,<br />         -8.4206e-01, -7.4727e-01, -4.1816e-01, -1.1171e+00, -8.3957e-01,<br />         -7.2551e-01, -6.5612e-01, -2.1734e-01, -7.5877e-01, -8.1655e-01,<br />         -1.4666e+00,  6.8534e+00,  2.3918e+00, -2.2120e+01, -1.1626e+00,<br />         -1.0394e+00, -1.1378e+00, -1.0831e+00,  1.2214e+01,  8.3887e+00,<br />         -9.4926e-01, -9.2964e-01, -1.6574e+01, -1.3692e+00, -1.8884e+00,<br />         -6.0111e-01, -1.7153e-01, -5.9309e-01, -7.9982e-01, -1.8660e-01,<br />         -7.6009e-01, -1.0750e+00, -9.2130e-01, -2.9906e-01, -7.9046e-01,<br />         -5.9484e-01,  6.1356e+00, -6.4141e-01, -1.1772e+00, -2.1657e+00,<br />          8.2907e+00,  1.6004e-01, -4.5558e+00, -2.7258e+00, -1.1597e+00,<br />         -1.0933e+01, -3.5250e-01, -1.6114e+01, -2.6516e-01, -9.5088e-01,<br />         -2.2213e+00, -3.5355e-01, -3.8035e+00, -3.0580e-01, -8.6134e-01,<br />          4.6872e+00, -1.4660e+00, -1.3926e+00, -2.0184e+00, -1.1133e+00,<br />         -1.4065e+00, -2.1029e-01, -1.0242e+00, -2.1178e-01,  5.4390e+00,<br />         -1.0446e+00, -1.9681e-01, -5.6447e-01, -1.9908e-01, -1.8673e-01,<br />          7.7422e+00, -1.4272e+00, -1.7023e-01, -2.9570e-01, -5.2039e-01,<br />         -3.1763e-01, -2.0674e-02, -1.6901e-01, -1.0512e-02, -5.1825e-01,<br />         -8.3698e-01, -7.0063e-01,  6.3533e+00, -5.1435e-01,  1.2796e-01,<br />         -1.4354e+00, -7.6603e-01, -1.0521e-01, -1.1031e+00, -3.5712e-01,<br />         -1.0332e+00,  7.5147e+00, -8.5460e-01, -2.5403e-01, -5.4898e-01,<br />         -6.0829e-01, -7.3291e-01,  2.6935e+00,  5.4835e+00, -1.3480e+01,<br />         -1.8402e+00, -1.2724e+00,  6.1110e-01, -3.5563e-02, -1.2901e+00,<br />         -1.0908e+00, -1.0241e+00, -5.1424e-01,  3.2534e-02, -6.2045e-01,<br />         -9.6891e-01, -5.4501e-01,  5.3297e+00, -2.3010e-01,  5.1841e-01,<br />         -3.5784e-01, -9.4067e-02, -1.2004e+00, -9.1853e-01,  1.4070e+00,<br />         -1.2968e+00, -1.2999e+00, -1.0496e+00, -9.5197e-01, -6.6701e-01,<br />         -8.9681e-01, -7.8379e-01, -9.4913e-01, -9.0083e-01, -1.0882e+00,<br />         -1.2324e+00, -1.1427e+00,  5.0570e+00, -1.4333e+00, -5.4541e-01,<br />         -6.1113e-01, -8.6848e-01,  2.4377e+00, -1.0680e+00,  9.8447e+00,<br />          5.6174e+00,  1.0218e+00, -1.1402e+00, -7.2895e-01, -1.8470e-01,<br />          5.6801e-02, -7.3009e-01, -3.2811e+00, -6.1589e-02,  2.1895e+01,<br />          1.0091e+01,  4.4335e-01, -3.3916e-02,  2.0015e-01,  1.3278e-01,<br />         -2.9462e-01, -3.3158e-01, -5.9422e+00,  1.7484e-01, -9.6596e-01,<br />         -4.7054e-01,  3.6560e-01,  2.5628e-01, -2.3975e+01, -8.7247e-02,<br />          7.8706e+00, -1.0385e-01, -4.3048e-01,  1.5711e-01,  7.7143e-02,<br />          7.8516e-02, -3.4594e-01,  4.5937e-02,  5.6425e+00,  1.5112e-01,<br />          2.2575e-01,  2.4955e-01, -1.6244e-01, -1.8184e-01, -2.3581e-02,<br />         -6.7364e-01, -2.7870e-02,  1.8746e-02, -2.8437e-02, -6.0419e-01,<br />          4.8259e-01, -8.7599e-02, -2.6273e-01,  3.2028e+00,  2.3763e-01,<br />         -2.6528e-01,  8.2496e+00,  1.1074e-01,  1.4258e-01, -2.2528e-01,<br />          9.3379e-03, -1.7632e-01,  2.0691e-01,  5.8571e-01, -1.6069e-02,<br />         -2.6504e-01,  2.4425e-02,  9.9887e-02, -3.3414e-01, -2.0628e-01,<br />         -2.1807e-01, -2.9011e-01, -1.0363e-01, -7.1037e-01,  1.7000e-01,<br />         -2.7459e-01, -3.6257e-01, -1.3321e-01,  1.2090e-01, -1.1051e-01,<br />          1.8445e-01, -2.5708e-01,  5.4282e+00, -5.8523e-01, -4.4985e-01,<br />          8.5578e+00, -4.5061e+00, -4.0017e-01, -4.1432e-01,  3.5181e-01,<br />          3.9117e-01,  2.9906e-01,  2.2990e-01,  2.9776e-01, -3.1685e-01,<br />          2.5615e-01, -1.8224e-01,  1.6206e-01,  2.7632e-02, -4.6059e-01,<br />          2.9663e-01,  1.1910e-01, -1.9236e-01,  4.1063e-01,  9.8644e-02,<br />          2.6365e-01,  1.5021e-01, -9.2747e-01,  2.5778e-01,  4.7184e-01,<br />         -7.9703e-01,  1.0053e+01, -5.5267e-03, -4.5335e-01,  8.7502e+00,<br />         -5.0980e-01, -8.8995e-01, -3.1298e-01, -2.5574e-01,  2.9981e-01,<br />          2.3983e-01, -1.0101e-02, -1.8801e-02, -5.3076e-02, -5.2083e-01,<br />          9.5328e+00, -8.4371e-01, -5.4568e-01, -1.2985e-01, -1.0995e+00,<br />          7.8161e+00, -9.3372e-01, -6.6218e-01, -9.0596e-01, -6.4735e-01,<br />         -4.4208e-01,  1.2425e-01, -1.4217e+00, -4.1171e-01,  1.3034e-01,<br />         -7.3342e-02,  9.3341e+00, -4.6729e+00, -9.0944e-01, -1.3831e+00,<br />         -1.7844e+00, -5.9477e+00, -8.5478e-01, -8.7530e-01, -1.1970e+00,<br />         -7.5070e-01, -7.1503e-01, -1.1938e+00, -7.8174e-01, -1.0038e+00,<br />         -1.4613e+00, -7.4007e-01, -5.7681e-01, -3.6986e-01, -9.8656e-01,<br />         -1.2252e+00,  1.1815e-02, -9.2557e-01, -1.3181e+00, -5.0359e-01,<br />         -1.4871e-01,  3.5457e+00, -4.3417e-01, -1.8000e-01,  1.1858e-01,<br />         -5.7208e-01, -8.2794e-01, -1.1515e+00, -9.9724e-01, -4.8915e-01,<br />         -1.1499e+00, -9.0271e-01, -9.7713e-01, -1.1906e+00,  7.4759e+00,<br />         -1.2325e+00, -1.1113e+00, -3.7537e-01, -1.1247e+00, -8.1317e-01,<br />          7.7153e+00, -3.0876e-01,  2.4818e+00, -1.8819e-02, -2.9745e+01,<br />         -1.0812e+00, -1.5324e+00, -1.0727e+00, -6.3278e-01, -6.5594e-01,<br />         -2.1141e-01, -2.9419e-01, -1.0257e+00, -1.0231e+00, -4.4509e-01,<br />          3.7156e-01, -8.5344e-01, -1.2985e+00, -2.2088e-01,  6.4307e+00,<br />         -1.0552e+00, -1.4340e+00,  3.1215e+00, -4.4853e-01, -4.1941e-01,<br />          1.6904e-01,  6.6213e-01, -2.4516e-01,  6.6184e+00,  1.8444e-01,<br />         -7.6232e-01, -9.0120e-02, -1.3869e+00, -9.8926e-02, -3.9975e-01,<br />         -6.4051e-01,  7.7341e+00, -9.9642e-01, -5.8463e-01,  8.0843e+00,<br />          7.7446e+00, -5.9572e+00, -1.3195e+00,  7.6834e+00, -1.4794e+00,<br />         -1.4984e+00, -8.2104e-01, -3.1359e+00, -5.0445e-01, -5.7738e-01,<br />         -6.2605e-01, -4.7661e-01, -4.0145e-01,  1.5603e+01, -5.4976e-01,<br />         -4.8561e-01, -8.7848e-01, -9.2070e-01, -9.4457e-01, -5.9788e-02,<br />         -2.5845e+00,  7.1403e-02,  7.0118e+00, -1.5812e+00,  6.7361e+00,<br />         -1.8427e-01, -1.0359e+00, -1.2749e+00,  6.7171e+00,  8.5411e-03,<br />         -5.9113e-01,  3.3010e-01,  1.2502e-01, -1.6013e+00, -1.2181e+00,<br />         -3.5198e-01, -3.2387e-01, -3.7935e-01, -4.9484e-01,  6.2369e-01,<br />         -5.5559e-02,  2.8182e-02,  1.1607e+00,  3.1603e-01,  9.1170e-02,<br />         -5.0581e+01, -3.3354e-01, -6.9272e-03,  8.9704e-04, -5.2492e-01,<br />          6.6158e-01,  6.1548e-01, -2.6688e-01, -1.1560e+00,  7.1814e+00,<br />         -1.0232e+00,  3.0500e-02,  7.7873e-01,  7.7198e-01,  8.5599e-02,<br />         -8.0316e-01, -4.9364e+00, -9.1021e-03, -2.1112e-01, -6.0259e-01,<br />          7.8204e-01, -3.4360e-01, -6.4694e-01,  2.0318e-01,  2.0348e-01,<br />          5.0687e-01, -1.3695e-01, -2.0527e-01, -8.3965e-01, -3.8869e-01,<br />         -1.5978e-02,  1.9347e-01,  7.0880e-01,  4.0714e-01, -5.1326e-01,<br />         -1.4493e-01,  3.1495e-01,  2.0955e-01, -4.6648e-01, -3.4225e-01,<br />          3.4637e-02,  1.0108e+00,  9.0532e-01, -2.0762e-01,  3.5621e-01,<br />         -7.2445e-01,  1.3067e+01,  6.7726e-01,  1.3835e+00,  6.2843e-01,<br />         -2.8452e-01, -1.0192e+00,  8.6062e+00, -1.6392e+00,  5.7381e-01,<br />         -1.0435e+00,  1.5714e-01,  1.2279e-01,  8.6283e+00,  6.2561e+00,<br />         -4.0468e-02,  7.0681e+00,  1.2585e-01, -2.1681e+01,  1.4611e+01,<br />         -2.3411e-01, -7.2368e-02, -1.8365e-03,  2.9596e+00, -1.1411e+00,<br />         -2.9730e-01,  1.7938e+01,  7.2424e+00,  5.1016e-01,  1.0051e-01,<br />          1.0628e-01,  3.2571e-01,  4.6448e-01, -8.7698e-01,  2.7590e-01,<br />         -1.0133e+00, -4.5238e-01, -5.4223e-01,  7.0200e+00,  7.4948e-01,<br />         -1.1842e+00,  3.3506e-01,  7.5488e-01,  2.4372e-01,  3.0494e-01,<br />          6.4743e-01,  2.3148e-01,  1.7616e-01,  1.3851e-02, -9.6435e-02,<br />         -8.9037e-01, -6.0654e-01,  4.2858e-01,  1.5258e-01,  9.8812e-01,<br />          1.3079e+00, -1.0711e+01,  4.2166e+00,  8.7998e-01,  3.3054e-01,<br />         -5.8444e+00, -3.4548e-02,  4.9459e-01,  7.7938e-01,  2.9191e-01,<br />         -7.0197e-01, -7.9523e-02, -3.6578e-01, -1.2519e-01, -3.2218e-02,<br />          5.0998e-01, -5.6472e-02, -5.2412e-01, -8.2180e-01,  5.2325e-02,<br />         -8.4480e-01, -2.6161e-01, -7.4100e-01, -8.2730e-02,  4.7658e-01,<br />         -1.0537e+00,  8.9414e-01,  4.8828e-01,  3.0081e-01,  1.5052e-01,<br />          4.5074e-01,  4.4070e-01, -1.4736e+00, -1.0278e+00, -7.8714e-02,<br />         -5.8056e-01, -3.5484e-01,  3.6458e-01, -1.6018e-01, -1.2974e+00,<br />         -4.8609e-01,  1.2365e-01,  1.4940e-01,  8.0415e-01,  2.2631e-01,<br />         -3.0853e-01, -5.1093e-01,  4.4652e-01, -5.7071e-02, -2.6952e+00,<br />          9.4816e+00, -1.2769e-01,  4.3953e-01,  1.5600e-01, -1.0600e+00,<br />          6.0080e-01, -2.0380e-01,  5.0884e-01, -4.7676e+00, -3.3775e-01,<br />         -4.2323e-01, -6.1404e-01,  2.8504e-01, -2.0254e-02, -4.0116e-01,<br />         -4.9001e-02, -2.4928e-01,  3.4356e-01,  8.4512e-02,  2.8335e-01,<br />         -2.1168e-01,  1.0649e+01,  1.0420e+00,  4.8394e+00,  6.1964e-01,<br />         -3.4492e-01,  3.8942e+00, -4.9420e-01,  5.2617e-01,  1.2750e-01,<br />          7.2947e+00,  8.1702e-01, -4.1560e-02, -5.4786e-01, -2.0883e-01,<br />          9.6875e-01, -2.9027e-01, -2.2928e-01, -4.4895e-01,  1.4488e-01,<br />         -1.6438e-01,  5.9487e-01, -5.8163e-01,  5.3420e+00, -5.8452e-01,<br />          6.9544e-01,  3.6611e-01, -7.5611e-01,  3.0533e-01, -1.3884e-01,<br />         -1.0706e-01,  6.9872e-01,  2.7047e-01,  1.1215e+00,  4.6718e-01,<br />          4.0828e-01, -1.7092e+00, -1.6398e-01,  2.5839e-01, -6.7712e-02,<br />         -8.7694e-01,  4.0819e-01, -4.9471e-01, -8.6026e-01, -2.4154e+00,<br />         -1.2276e-01, -2.7824e-01,  5.3658e+00,  4.9554e-01, -1.9481e-01,<br />          1.2292e-01,  7.8525e-01,  2.3872e-02,  4.0939e+00,  3.4132e-02,<br />         -1.5645e+00,  7.0096e-01, -2.1828e-01,  8.5402e-01,  1.5863e-01,<br />          2.9813e+00,  2.3696e-01, -2.3722e-01, -3.8006e-01, -1.1631e+00,<br />          4.3912e-01,  3.7513e-02,  4.3560e-01,  5.2420e-01, -1.4707e+00,<br />          2.7144e-01, -7.4455e-01, -5.1493e-01,  5.2521e-02, -2.6730e+00,<br />         -1.8987e-01, -9.9107e-01, -1.6863e-01, -7.1332e-01,  4.2669e+00,<br />         -5.3371e-02,  5.9373e-01,  1.4868e-01, -7.0538e-01, -6.0082e-01,<br />          1.4704e-01, -4.9876e-01, -6.0873e-01,  1.7014e-01, -3.0275e+01,<br />         -1.4344e+00,  1.0841e+00,  1.7418e-01,  5.6397e-01,  8.2630e-02,<br />         -5.9019e-01,  2.8368e-01, -4.4285e-01,  1.4122e-01,  6.4251e-01,<br />         -1.3243e+00,  4.8020e+00, -1.0624e+00, -4.6566e-01, -7.7769e-01,<br />         -4.0430e-01,  4.7527e-01, -8.2211e-01,  4.6503e-01, -1.0446e+00,<br />         -8.7541e-02,  9.1078e-01, -1.9699e-01, -4.1365e-01,  5.1298e-01,<br />          1.4619e-02, -4.1418e-01, -2.2742e-01,  1.1421e-01, -6.2088e-04,<br />          9.0550e+00, -3.6152e-01, -4.1244e-02,  6.7183e-01, -3.5516e-01,<br />         -2.8442e-01,  5.1599e-02, -1.5489e-01, -4.2900e-01, -5.0945e-02,<br />         -2.3836e-01,  1.9734e-01,  3.5747e+00,  3.5048e+00,  1.2286e-01,<br />          4.7291e+00,  1.6677e-01,  5.0529e-01,  1.1175e-01, -5.6003e-01,<br />         -8.1337e+00, -7.2567e-01,  1.2407e+01,  4.9879e-01, -5.0294e-01,<br />         -1.8211e+00,  1.1139e+00, -7.3934e-01,  1.1462e+00, -1.4798e+00,<br />         -2.1136e-01, -1.6329e-01,  1.8851e-03,  5.9336e-01, -2.1684e-01,<br />          7.2945e-01, -4.1354e-02,  1.7159e-01, -1.9134e-01, -3.2639e-02,<br />         -2.3387e-01, -4.5282e-01,  5.6362e-01, -2.1310e-03,  5.7659e-01,<br />         -1.9335e-01, -4.2932e-01, -6.7643e-02,  3.1747e-02,  4.1841e-01,<br />         -6.5551e-01,  1.0555e+01, -4.1258e+00,  1.1800e+00, -2.4468e-01,<br />         -8.0830e-02,  3.7979e-01,  1.4558e-01,  7.2083e-01,  8.2094e-01,<br />         -1.9364e+00,  1.5049e-01, -3.4493e+00, -3.7798e-01,  6.4016e-01,<br />          1.2758e-01,  1.2351e-01,  8.7173e-01,  3.6028e-02, -8.3858e-02,<br />          2.3584e-01,  3.5734e-01, -1.5258e+01,  6.5326e-01, -8.1408e-01,<br />          8.7982e+00, -8.2415e-01,  7.5384e-01,  4.1488e-01,  6.9907e-01,<br />          2.6800e-02,  1.5982e-01,  9.0493e-01,  7.4287e+00, -2.6007e-01,<br />          2.3836e-01,  3.3552e-01,  6.1951e-01,  1.7672e-01,  1.9357e-01,<br />         -2.8489e+01,  5.6765e-01,  3.8560e-01, -3.6292e-01,  2.4188e-02,<br />         -7.4524e-01,  1.0474e-01, -1.0021e+00, -1.0982e+00,  3.6997e-01,<br />          5.4891e-01,  9.9697e-02, -2.0172e-01,  1.1126e+00, -1.1220e+01,<br />         -3.8723e-01,  3.9403e-01, -4.2756e-01,  7.1580e-01, -8.3587e-01,<br />         -3.9499e-01,  1.9091e-02, -8.8970e-01,  5.4678e-01,  2.2064e-01,<br />         -1.2714e+00, -7.0085e-01,  1.8650e-01,  3.7933e-01,  3.4788e-01,<br />         -6.9564e-01,  5.8728e-02,  5.8410e-01,  7.7375e-02, -4.6896e-01,<br />          4.7287e-01, -2.9092e-01, -5.1333e-01, -8.0839e-01, -1.2330e-01,<br />          1.8131e-01,  1.0093e+00,  9.5369e-01,  2.0513e-01, -4.9450e-01,<br />          8.6447e-01,  5.8131e+00,  5.3772e+00,  3.4961e-01,  5.0210e+00,<br />          7.7519e-01,  1.1220e+01, -6.5384e-01,  3.6045e-02,  4.9234e-01,<br />          4.1998e-01,  6.7939e-01,  4.1427e-01, -5.4165e-01, -4.1638e-01,<br />          4.2398e-01, -1.4143e+00, -2.7998e+00,  9.3041e+00,  5.3229e-01,<br />          4.6536e-02,  7.9408e-01,  4.8043e-01, -6.7394e-02, -4.8614e-01,<br />          2.1090e-01, -5.7115e-01, -1.1627e+00,  8.5690e-01, -4.7997e-01,<br />          6.2639e+00, -9.6856e-01,  7.4864e+00, -7.2197e-01, -1.8133e+00,<br />          1.7946e-01,  1.1411e+00, -5.2402e-01,  1.0813e+01,  7.0472e-01,<br />          4.8512e-01, -3.3854e-01,  3.4711e-01,  8.1417e-01, -3.0601e-01,<br />         -1.8852e-01, -3.2081e-01, -2.4498e+00, -7.9404e-01,  1.6746e-01,<br />         -5.9490e-01, -1.7251e-01,  4.8110e-01,  2.6063e-02, -6.2740e-01,<br />         -1.0655e+00,  7.7957e-01,  4.3022e-01, -3.2064e-01,  1.1387e+00,<br />         -8.4732e-01, -5.2953e-01,  3.1137e-01,  2.9283e-01,  6.0483e-01,<br />          7.9638e-02,  4.8899e+00,  8.5033e-01, -8.3357e-01,  4.8676e-01,<br />          4.6297e-01,  6.0738e-01,  3.7526e-01, -4.6644e-01, -1.2772e+00,<br />         -5.1409e-01,  4.9370e-02,  1.7685e-01, -2.2113e-02, -1.4460e-01,<br />         -3.0095e-01,  5.9490e-01, -5.7839e-01,  1.0648e-02, -6.1280e-01,<br />         -4.7614e+00, -1.1388e+00, -8.7777e-01, -5.2101e-01, -2.3257e+00,<br />         -5.4177e-01, -3.8826e-01, -3.5506e-01, -1.8402e+00, -3.9653e+00,<br />         -7.6208e-01,  8.7070e-02, -3.3776e-01, -3.3950e-01, -6.2380e-01,<br />         -5.6249e-01, -9.0860e-01, -7.7653e-01, -6.5774e-01, -8.0787e-01,<br />         -9.6694e-01, -1.0197e+00,  9.2538e-02, -1.8464e+01,  7.5323e+00,<br />         -5.4676e-01, -8.1616e-01, -8.7753e-01, -2.5963e-01,  3.4584e-01,<br />         -1.2955e+00, -5.4957e-01, -5.1894e-01, -1.5269e-01,  1.2589e+01,<br />         -1.3563e-01, -3.4128e-01, -5.7195e-01, -9.0047e-01, -1.2300e+00,<br />         -1.9702e+00,  2.6821e-01, -2.0906e+00, -1.6163e+00, -4.8408e+00,<br />          6.6520e+00,  4.2927e-01, -2.9416e-01, -1.1562e+00, -1.6190e+00,<br />          3.1745e-01, -1.3883e+00, -1.8319e-01, -9.5329e-02, -8.3665e-01,<br />         -8.5588e-01, -1.4261e-01,  6.0884e-02, -5.4049e-01, -5.5738e-01,<br />         -1.2308e+00, -1.9899e+00,  7.7201e-01, -4.1223e-01, -1.0523e+00,<br />         -3.3784e-01, -1.2651e+00, -9.0390e-01, -1.3715e+00,  7.3094e+00,<br />         -3.9702e-01, -8.1356e-02, -6.8597e-01,  7.0341e-01, -1.4777e-01]],<br />       requires_grad=True)</div></td></tr>\n",
       "</tbody>\n",
       "</table>\n",
       "<small>(Showing first 2 rows)</small>\n",
       "</div>"
      ],
      "text/plain": [
       "╭──────────────┬────────────────────────────────────┬──────────────────────┬──────────┬────────────────────────────────╮\n",
       "│ image        ┆ arr                                ┆ class_human_readable ┆ class_id ┆ model_predictions              │\n",
       "│ ---          ┆ ---                                ┆ ---                  ┆ ---      ┆ ---                            │\n",
       "│ Image[MIXED] ┆ FixedShapeTensor(UInt8, [256, 256, ┆ Utf8                 ┆ Int64    ┆ Python                         │\n",
       "│              ┆ 3])                                ┆                      ┆          ┆                                │\n",
       "╞══════════════╪════════════════════════════════════╪══════════════════════╪══════════╪════════════════════════════════╡\n",
       "│ <Image>      ┆ <FixedShapeTensor>                 ┆ sea_snake            ┆ 65       ┆ tensor([[-2.7218e-01, -3.9199… │\n",
       "├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
       "│ <Image>      ┆ <FixedShapeTensor>                 ┆ alp                  ┆ 970      ┆ tensor([[-2.9406e-01, -3.9664… │\n",
       "╰──────────────┴────────────────────────────────────┴──────────────────────┴──────────┴────────────────────────────────╯\n",
       "\n",
       "(Showing first 2 rows)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.with_column(\n",
    "    \"model_predictions\",\n",
    "    df[\"arr\"].apply(\n",
    "        lambda arr: model(torch.tensor(arr).permute(2, 0, 1).unsqueeze(0).float()), return_dtype=daft.DataType.python()\n",
    "    ),\n",
    ").show(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6dfb44fa-3c29-4e16-9b23-b02bb3276f06",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.18"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
